7.4.1 表式の指定形式および規則
表式とは,FROM句,WHERE句,GROUP BY句,およびHAVING句の総称です。表式は問合せ指定中に指定します。
- 〈この項の構成〉
(1) 指定形式
表式::=FROM句 〔WHERE句〕 〔GROUP BY句〕 〔HAVING句〕
(2) 指定形式の説明
- FROM句:
-
FROM句には,検索対象となる表を指定します。FROM句の詳細については,「7.5 FROM句」を参照してください。
- WHERE句:
-
WHERE句には探索条件を指定します。WHERE句の詳細については,「7.6 WHERE句」を参照してください。
- GROUP BY句:
-
グループごとに検索データを集計する場合にGROUP BY句を指定します。GROUP BY句の詳細については,「7.7 GROUP BY句」を参照してください。
- HAVING句:
-
GROUP BY句によってグループごとに集計されたデータの抽出条件を指定する場合にHAVING句を指定します。HAVING句の詳細については,「7.8 HAVING句」を参照してください。
(3) 規則
-
表式の結果の列を列指定として参照することができます。
-
WHERE句,GROUP BY句,およびHAVING句すべてを省略した場合,表式の結果はFROM句の結果となります。それ以外の場合は,指定した各句の結果が直後に指定した句に適用されます。表式の結果は,最後に指定した句の結果となります。
次に示すSELECT文を実行する場合を例にして具体的に説明します。
(例)
販売履歴表(SALESLIST)から,2011/9/3以降の商品コード(PUR-CODE)ごとの販売個数の合計値を求めます。その際,販売個数の合計値が20個以下の商品コードだけを検索対象にします。
SELECT "PUR-CODE",SUM("PUR-NUM") FROM "SALESLIST" WHERE "PUR-DATE">=DATE'2011-09-03' GROUP BY "PUR-CODE" HAVING SUM("PUR-NUM")<=20
- 説明
-
下線部分が表式の指定です。上記のSELECT文が実行された場合,次に示す流れで表式の結果が導き出されます。
1.FROM句の結果がWHERE句に適用されます。その結果,SALESLIST表中のPUR-DATE列が2011-09-03以降のデータ(PUR-CODE列のデータとPUR-NUM列のデータ)が抽出されます。
2.1の抽出結果がGROUP BY句に適用されてグループ化されます。その結果,PUR-CODEごとに,1の抽出結果のデータが集計されます。
3.2の集計結果がHAVING句に適用されます。その結果,PUR-NUM列の値の合計が20以下のデータだけが集計されます。この集計結果が表式の結果となります。
(4) 例題
表式の指定例を例題を使って説明します。
- 例題
-
販売履歴表(SALESLIST)から,2011/9/6以降に商品コードP002の商品を購入した顧客の,顧客ID(USERID),商品コード(PUR-CODE),購入日(PUR-DATE)を検索します。
SELECT "USERID","PUR-CODE","PUR-DATE" FROM "SALESLIST" WHERE "PUR-DATE">=DATE'2011-09-06' AND "PUR-CODE"='P002'
下線部分が表式の指定です。