記述順序と記述可能な場所
- select => from => where => group by => having => order by
( 但し、group by と having は入れ替える事ができます。) - グループ関数を記述可能な場所は以下の3つ
- select
- having
- order by
記述可能な列
- select にそのまま記述できる列は、group by で指定されていなければならない
- それ以外はグループ関数の引数でなければならない
- グループ関数の引数は1つでなければならない
ネスト
- ネストは2レベルまで
- 2レベルで1行(または0行)になるので、それ以上は無い
- group by が無ければ、ネストはできない
NULLとの関係
- 基本的に NULL は無視される
- count( * ) は NULL を含む行数が返される
- count( 列名 ) は NULL を含まない行数が返される
- count( 列名 ) は count( all 列名 ) と同義である
- count( distinct 列名 ) は、NULL 以外の重複しない行数が返される
- avg( 列名 ) と sum( 列名 ) は NULL 以外を処理する
|