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

mysql:13068

From: "Yoshio Kawano" <"Yoshio Kawano" <kawano@xxxxxxxxxx>>
Date: Mon, 5 Jun 2006 17:07:03 +0900
Subject: [mysql 13068] Re: グループ化された情報の TOP 10を取得する方法

回答、ありがとうございました。

度重なる、説明不足にて、誠に申し訳けありません。

名称1,2,3に登録されている名称は、私が皆様に情報のグループ構成について説
明する為に、勝手に付けた情報です。
申し訳けありませんでした。

実際に名称1,2,3に登録される名称は、色々な単語です。
例えば、
  名称1=ジョン,名称2=F,名称3=ケネディ
  名称1=松下,名称2=電気,名称3=パナソニック
  名称1=松下,名称2=電気,名称3=ナショナル
  名称1=松下,名称2=冷蔵,名称3=商品名
とか、何かしら関係のある名称群が登録されております。
それを、名称1+名称2をグループとして、それぞれのTOP10を抽出する方法を模
索しております。

----- Original Message ----- 
From: "F.Y" <fumi_sby@xxxxxxxxxx>
To: <ml@xxxxxxxxxx>
Sent: Monday, June 05, 2006 4:18 PM
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]