上位10レコードなど、指定した数のデータを抽出する

スポンサーリンク
スポンサーリンク

上位10レコードなど、指定した数のデータを抽出する

「上位10名を抽出する」と言うような、特定フィールドの値を元に上位/下位の任意レコードを取得するにはSELECT命令にTOP指定を組み合わせて使用する。

TOP指定の利用
SELECT TOP n * FROM テーブル ORDER BY フィールド;

取り出し元テーブル

select top 3 * from 社員 order by 年齢;

select top 3 * from 社員;

ORDER BY句を指定しないと元テーブルのにあるデータを上から3件取得するようだ。

select top 3 * from 社員 order by 所属;

n個目のレコードと同じ値を「n+1個目」のレコードも持っている場合には、同一順位と見なし、n個目のレコードと同じ値を持つレコードも抽出される。
上記例だと、トップ2つのレコードは「営業1課」のレコードで、3つめは「営業2課」となるが、複数あるのでそれらは同一順位となるため、抽出される。

上位nパーセントのレコードを抽出する

TOP n PERCENT指定の利用
SELECT TOP n PERCENT * FROM テーブル ORDER BY フィールド;

取り出し元テーブル

select top 30 percent * from SQL商品

ORDER BY句を指定しないと元テーブルのにあるデータを上から30%分取得するようだ。

select top 30 percent * from SQL商品 ORDER BY 単価;

上位30%のデータが10レコード中4個あるため、それらが全て抽出される。

select top 30 percent * from SQL商品 ORDER BY 単価 desc;

スポンサーリンク
シェアする
スポンサーリンク
あんとんさんち 覚え書き