かつのりの日記2

わんくまでは珍しいJavaを中心とした日記です

目次

Blog 利用状況

書庫

日記カテゴリ

いろいろリンク

グループ単位で上位n件を取得するSQL

SQLについて久々に書こうかなと思います。グループ単位で上位N件を取得するSQLですが、使うシチュエーションとしては各教科ごとに成績上位5名ずつ表示する等。まず、

id category point name
1 1 100 foo1
2 1 50 foo2
3 1 70 foo3
4 2 30 bar1
5 2 50 bar2
6 2 80 bar3
7 2 10 foo4
8 3 30 foo5
9 3 40 foo6
10 3 50 bar4
11 3 60 bar5

というようなテーブルがあり、各カテゴリ単位でポイント上位2件ずつ取得したいとする場合のSQL。

select
	*
from
	Table1 as t1
where
	id in(select
			id
		from
			Table1 as t2
		where
			t1.category = t2.category
		order by
			point desc,
			id
		limit 2)
order by
	category,
	point desc

実行結果は以下の通り。

id category point name
1 1 100 foo1
3 1 70 foo3
6 2 80 bar3
5 2 50 bar2
11 3 60 bar5
10 3 50 bar5

ちなみに、PostgreSQL8で確認しましたが、他のRDBでは確認していません。このSQLでは同点の場合にID順で上位を決めています。同点は全て出すというルールになると試していないですが、in句の中のサブクエリのwhere句にポイント上位2件を取得して、ポイント同士でくっつける必要があるでしょう。(明日でも試してみようかな・・・)

投稿日時 : 2007年6月7日 22:10

Feedback

# re: グループ単位で上位n件を取得するSQL 2007/07/02 17:49 じゃんぬねっと

役立っているようですね。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=39369&forum=26

# re: グループ単位で上位n件を取得するSQL 2007/07/02 19:22 かつのり

びっくりしたw

# ???????????????????????????n??????????????????SQL mysql – wdwa 2011/02/20 9:46 Pingback/TrackBack

???????????????????????????n??????????????????SQL mysql – wdwa

# ブランド激安市場コピー 2016/02/22 18:52 h1kb6so758

http://www.okakaku.com/brand-1-copy-6-cheap-0-max0-attr0.html
ブランド腕時計バッグ財布コピー エルメス(バッグ、時計) シャネル(バッグ、時計)ルイヴィトン(バッグ、時計) ブルガリ時計 グッチ(バッグ、小物) ロレック(時計)オメガ(時計) IWC(時計)FRANCK MULLER(時計)1.最も合理的な価格で商品を消費者に提供致します。2.弊社の商品品数大目で、商品は安めです!商品現物写真。3.数量制限無し、一個の注文も、OKです。4.1個も1万個も問わず、誠心誠意対応します。5.不良品の場合、弊社が無償で交換します。不明点、疑問点等があれば、ご遠慮なく言って下さい。}}}}}}

# コピーブランド 2017/06/30 17:43 wbtefnufve@icloud.com

ブランド偽物(コピー商品)激安市場

━…━…━…━…━…━…━…━…━…━…━…
ルイ.ヴィトン、シャネル、グッチ、エルメス、クロエ、ブラダ、ブルガリ ドルチェ&ガッバ―ナ、バレンシアガ、ボッテガ.ヴェネタ偽物(コピー商品)のブランドのバッグ、財布の販売、通販。
━…━…━…━…━…━…━…━…━…━…━…
○各種のブランド偽物(コピー商品)の指輪.ネックレス
○各種のブランド偽物(コピー商品)のベルト
○各種のブランド偽物(コピー商品)のマフラー
○ スタイルが多い、品質がよい、価格が低い!
○ S品質 シリアル付きも有り 付属品完備!
○必ずご満足頂ける品質の商品のみ販売しております.
○ 品質を最大限本物と同等とする為に相応の材質にて製作している為です.
○ 絶対に満足して頂ける品のみ皆様にお届け致します.

人気の売れ筋商品を多数取り揃えております。全て激安特価でご提供.お願いします。

タイトル  
名前  
Url
コメント