[前][次][番号順一覧][スレッド一覧]

mysql:13066

From: "F.Y" <"F.Y" <fumi_sby@xxxxxxxxxx>>
Date: Mon, 5 Jun 2006 16:18:51 +0900 (JST)
Subject: [mysql 13066] Re: グループ化された情報の TOP 10を取得する方法

名称1の取り得る値が限られているなら、最近出た順位出すユーザ変数使ってみ
るのも一興。
名称3のハイフンの後ろが順位を示すなら、substring(名称3, instr(名称3, '-')
+ 1) 
で順位が取り出せる。
名称1の取り得る値が不明で、名称3が順位を示さない場合のヒント。
select kcode, kseiseki, a1 from (
select kcode, kseiseki, if(kcode <> @chk, @r1 := 1, @r1 := (@r1 + 1)) as
a1, (@chk := kcode)  as a2 from kdata order by kcode, kseiseki
) as t0
where a1 < 11;
サブクエリにしないとならんところが美しくない…。
げーじつかぼしゅうちう

--- Yoshio Kawano <kawano@xxxxxxxxxx> からのメッセージ:
> 説明に不備があり、申し訳けありませんでした。
> 
> データに登録されている値は、0〜99999のある計算結果から求められた
値であ
> ります。
> その為、1〜nを順位を示した番号ではありません。データ(順位)と表現
してしま
> う事で、余計に混乱を招く結果となってしまい、申し訳けありませんでした> 
> データに登録されている値で、最小のものから10件を取得したいと言う意味
でした。
> 
> ----- Original Message ----- 
> From: "F.Y" <fumi_sby@xxxxxxxxxx>
> To: <ml@xxxxxxxxxx>
> Sent: Monday, June 05, 2006 2:56 PM
> Subject: [mysql 13063] Re: グループ化された情報の TOP
> 10を取得する方法
> 
> 
> > 意味わがんね。
> >
> > where 順位 < 11
> >
> > でダメな理由って何?
> >
> > --- Yoshio Kawano <kawano@xxxxxxxxxx> からのメッセージ:
> > > お世話になっております。kawaと申します。
> > >
> > > SQL文の組み立てで困っております。ご教示、お願い致します。
> > >
> > > 【内容】
> > >
>  グループ化した情報のTOP10を取得するSQL文を作成したい。
> > >
> > >
> 下記の情報が、DBに登録されているとします。その場合、(名称1+名称2
> > )のグ
> > >
> ループの中で、データが一番、高い方(1が一番高い)から10レコード抜出
> > す。
> > >
> > >    名称1  名称2  名称3  データ(順位)
> > >    A     A1         A1-1        1
> > >    A     A1         A1-2        2
> > >    A     A1         A1-3        3
> > >    A     A1         A1-4        4
> > >    A     A1         A1-5        5
> > >    A     A1         A1-6        6
> > >    A     A1         A1-7        7
> > >    A     A1         A1-8        8
> > >    A     A1         A1-9        9
> > >    A     A1         A1-10      10
> > >    A     A1         A1-11      11
> > >    A     A1         A1-12      12
> > >    A     A2         A2-1        1
> > >    A     A2         A2-2        2
> > >    B     B1         B1-1        1
> > >    B     B1         B1-2        2
> > >    B     B1         B1-3        3
> > >    B     B2         B2-1        4
> > >    B     B2         B2-1        5
> > >
> > > SQL文を実行すると、下記の様な情報を取得したいと思っております。
> > >    名称1  名称2  名称3  データ
> > >    A     A1         A1-1        1
> > >    A     A1         A1-2        2
> > >    A     A1         A1-3        3
> > >    A     A1         A1-4        4
> > >    A     A1         A1-5        5
> > >    A     A1         A1-6        6
> > >    A     A1         A1-7        7
> > >    A     A1         A1-8        8
> > >    A     A1         A1-9        9
> > >    A     A1         A1-10      10
> > >    A     A2         A2-1        1
> > >    A     A2         A2-2        2
> > >    B     B1         B1-1        1
> > >    B     B1         B1-2        2
> > >    B     B1         B1-3        3
> > >    B     B2         B2-1        4
> > >    B     B2         B2-1        5
> > >
> > > ※:下記の情報は、TOP10以下の情報なので、切り捨てたい。
> > >    A     A1         A1-11      11
> > >    A     A1         A1-12      12
> > >
> > > 【テーブル構成】
> > >  テーブル名    =info
> > >  項目           =名称1            Varchar
> > >                      名称2            Varchar
> > >                      名称3            Varchar
> > >                      データ             int
> > >
> > > 【自分で作成してみた結果】
> > >
>  解らないなりにも、自分で作成してみました。しかし、結果は、思惑の通
> > りには行
> > > きませんでした。
> > >
> > >  >select * top 10 from info group by 名称1,名称2 order by
> データ;
> > >
> > > 【mySQL】
> > >  4.0.26
> > >
> > > 以上、宜しくお願い致します。
> > >
> > >  
> > >
> >
> > --------------------------------------
> > Let's start Yahoo! Auction  -  Free Campaign Now!
> > http://pr.mail.yahoo.co.jp/auction/
> >
> >
> 
> 
> 

--------------------------------------
Let's start Yahoo! Auction  -  Free Campaign Now!
http://pr.mail.yahoo.co.jp/auction/

[前][次][番号順一覧][スレッド一覧]

   @ 13062 2006-06-05 14:49 ["Yoshio Kawano" <kaw] グループ化された情報のTOP10を取得する方法
     13063 2006-06-05 14:56 ┗["F.Y" <fumi_sby@xxxx]                                       
     13064 2006-06-05 15:48  ┗["Yoshio Kawano" <kaw]                                     
     13065 2006-06-05 15:47   ┣[遠藤 俊裕 <endo@xxxx]                                   
     13067 2006-06-05 16:48   ┃┗["Yoshio Kawano" <kaw]                                 
->   13066 2006-06-05 16:18   ┗["F.Y" <fumi_sby@xxxx]                                   
     13068 2006-06-05 17:07    ┗["Yoshio Kawano" <kaw]                                 
     13069 2006-06-05 17:26     ┗["F.Y" <fumi_sby@xxxx]                               
     13075 2006-06-06 02:05      ┗["Yoshio Kawano" <kaw]