mysql:13062
From: "Yoshio Kawano" <"Yoshio Kawano" <kawano@xxxxxxxxxx>>
Date: Mon, 5 Jun 2006 14:49:53 +0900
Subject: [mysql 13062] グループ化された情報のTOP10を取得する方法
お世話になっております。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
以上、宜しくお願い致します。
-> @ 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]