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]