Hitachi

Hitachi Advanced Data Binder SQLリファレンス


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)を検索して,商品IDPID)を配列要素とする配列データを求めます。求める配列データの条件を次に示します。

  • 配列要素の値を単価(PRICE)の昇順に並べる。

  • 顧客IDCID)ごとに配列データを求める。

SELECT "CID",ARRAY_AGG("PID" ORDER BY "PRICE") AS "PID_LIST"
  FROM "SALES"
    GROUP BY "CID"

下線部分がARRAY_AGG集合関数のソート指定リストの指定です。