1Z0-071 · Silver SQL
グループ関数を使用した集計データのレポート
★★☆☆☆
Q10of 20
以下のSQL文で、どのような結果が返されますか。 — Silver SQL 問10
以下のSQL文で、どのような結果が返されますか。
SELECT department_id, MAX(salary) FROM employees;Choices選択肢
- A全従業員の最高給与
- B部署ごとの最高給与
- C従業員数ごとの最高給与
- Dエラー正解
Answer
正解は、Dです
Explanation解説
SELECT 句に **集計ファンクションと非集計の列を混在させる場合は、非集計の列を GROUP BY で指定する必要があります**。
今回の SQL は department_id を GROUP BY せずに MAX(salary) と並べているため、構文エラー(ORA-00937: not a single-group group function)になります。
正しい書き方:
-- 部署ごとの最高給与を取得したい場合
SELECT department_id, MAX(salary)
FROM employees
GROUP BY department_id;ルール:
> SELECT 句に集計関数と非集計列が混在している場合、非集計列はすべて GROUP BY 句に含まれていなければならない。
このルールは Silver SQL の頻出論点です。