スポンサーリンク

2008-03-11

Tips140 - 中位○件のレコードを抽出 WHERE(TOP述語)

中位のレコードを抽出するにはサブクエリを使用します。
例えば、100人の得点から51位~60位のレコードを取得するには、
初めに下位50人を昇順で抽出し、その後10人を降順で抽出します。
初めの下位50人がサブクエリになります。

1 50 51 100
   ↓
51 100

51 60

使用例:
20人の英語の得点から中位5人(11位~15位)を取得します。
SQL = "SELECT TOP 5 学生ID,英語 FROM 成績テーブル WHERE 学生ID=ANY (SELECT TOP 10 学生ID FROM 成績テーブル ORDER BY 英語) ORDER BY 英語 DESC"