・ グループ関数は行のグループに対して、一つの結果を戻す。
・ グループ関数はNULLを無視する。(「*」を使用する場合を除く)
・ COUNT ( DISTINCT 列名)は列にNULL値を行や重複する値を除いた行を返す。
・ SELECT句の中でグループ関数とグループ関数以外の列を一緒に指定する場合、必ずグループ関数以外の列をGROUP BY句で指定が必要。(GROUP BY句で指定されていない列は、SELECT句でグループ関数と一緒に使用できない。)
例: SELECT 列1, AVG(SAL)
FROM 表名 GROUP BY 列1
・ GROUP BY句で指定している書式と、SELECT句やORDER BY句で指定している書式が異なる場合、エラーになる。(SELECT句とORDER BY句の間でその関係はない)
・ GROUP BY句で指定されていない列をORDER BY 句では使用できない。
・ SELECT句最後のORDER BY句にはGROUP BY句で指定した列か、グループ関数しか指定できない。
・ 複数列でグループ化した場合、列の指定順序はどちらでも構わない。(結果として同じグループをつくる)
・ 主問い合わせの条件式にグループ関数が使用されている場合、WHERE句ではなくHAVING句が必要。
・ HAVING句内ではグループ関数のネストは使用できない。
・ HAVING句の副問い合わせの中ではGROUP BY句を指定すればグループ関数のネストが可能。(グループ関数のネストはGROUP BY句が指定されているSELECT句のみ使用可能)
・ HAVING句の条件式ではグループ関数を使用した集計値と、GROUP BY句で指定された列のみが使用できる。
・ グループ関数の引数として単一行関数を使用できる。
グループ関数
使用可 |
使用不可 |
SELECT句 |
WHERE句 |
HAVING句 |
GROUP BY句 |
ORDER BY句 |
|
CASE式
コメント