SQL Master データベースエンジニアとセキュリティエンジニアとLinuxエンジニアのための情報

グループ関数の注意点

MIN関数、MAX関数、AVG関数、SUM関数などのグループ関数では、NULL値は無視されますが、COUNT関数の場合、COUNT(*)と指定すると、NULL値もカウントされる。ただし、COUNT(列名)とすると、指定した列にあるNULL値は無視される。

 

グループ関数を使用している場合、SELECT句にあるグループ関数でない列は、必ずGROUP BYに指定する必要がある。

例:

SELECT job_type, AVG(salary) FROM emp_table GROUP BY job_type;

 

また、WHERE句にはグループ関数で条件を記載することができない。

エラーの例:

SELECT job_type, AVG(salary) FROM emp_table

WHERE AVG(salary) > 1000 GROUP BY job_type;

正しい例:

SELECT job_type, AVG(salary) FROM emp_table

HAVING AVG(salary) > 1000 GROUP BY job_type;