7.25.4 例題
- 〈この項の構成〉
(1) ORDER BY句にソート指定リストを指定した例
- 例題1(ソートキーに1つの列を指定する場合)
-
顧客表(USERSLIST)の全データを顧客ID(USERID)順に並べます。
SELECT "USERID","NAME","SEX" FROM "USERSLIST" ORDER BY "USERID" ASC
下線部分がソート指定リストの指定です。
- 例題2(ソートキーに複数の列を指定する場合)
-
販売履歴表(SALESLIST)の全データを購入日(PUR-DATE)順に並べます。購入日が同じ場合は,顧客ID(USERID)順に並べます。
SELECT "USERID","PUR-CODE","PUR-NUM","PUR-DATE" FROM "SALESLIST" ORDER BY "PUR-DATE" ASC,"USERID" ASC
下線部分がソート指定リストの指定です。
- 例題3(ソートキーに値式を指定する場合)
-
販売履歴コード(HIS-CODE)の先頭3文字目から8文字分のデータを抽出し,販売履歴表(SALESLIST)の全データを,抽出したデータの順に並べます。
SELECT * FROM "SALESLIST" ORDER BY SUBSTR("HIS-CODE",3,8) ASC
下線部分がソート指定リストの指定です。
- 例題4(ソートキーにソート項目指定番号を指定する場合)
-
販売履歴表(SALESLIST)から,商品コード(PUR-CODE)ごとの販売個数(PUR-NUM)の合計を求めます。検索結果は販売個数の合計順に並べます。
SELECT "PUR-CODE",SUM("PUR-NUM") FROM "SALESLIST" GROUP BY "PUR-CODE" ORDER BY 2 ASC
下線部分がソート指定リストの指定です。
- 例題5(ナル値ソート順指定を指定する場合)
-
販売履歴表(SALESLIST)の全データを購入日(PUR-DATE)順に並べます。PUR-DATE列がナル値の行は先頭にソートします。
SELECT "USERID","PUR-CODE","PUR-NUM","PUR-DATE" FROM "SALESLIST" ORDER BY "PUR-DATE" ASC NULLS FIRST
下線部分がソート指定リストの指定です。
(2) WITHINグループ指定にソート指定リストを指定した例
- 例題
-
給与表(SALARYLIST)から,社員の給料(SALARY)の中央値(50パーセンタイル)を求めます。
SELECT PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY "SALARY") "PERCENTILE_CONT" FROM "SALARYLIST"
下線部分がソート指定リストの指定です。
(3) ウィンドウ順序句にソート指定リストを指定した例
- 例題
-
給与表(SALARYLIST)から,社員の職級(POSITION)ごとに,社員の給料(SALARY)のランクを求めます。
SELECT "EMPID","POSITION","SALARY", RANK() OVER(PARTITION BY "POSITION" ORDER BY "SALARY" DESC) "RANK" FROM "SALARYLIST" ORDER BY "POSITION","SALARY" DESC,"EMPID"
下線部分がウィンドウ順序句のソート指定リストの指定です。
(4) ARRAY_AGG集合関数にソート指定リストを指定した例
- 例題
-
売上表(SALES)を検索して,商品ID(PID)を配列要素とする配列データを求めます。求める配列データの条件を次に示します。
-
配列要素の値を単価(PRICE)の昇順に並べる。
-
顧客ID(CID)ごとに配列データを求める。
SELECT "CID",ARRAY_AGG("PID" ORDER BY "PRICE") AS "PID_LIST" FROM "SALES" GROUP BY "CID"
下線部分がARRAY_AGG集合関数のソート指定リストの指定です。
-