输入SQL查询语句,查看分步执行过程和结果:
找出以下SQL语句中的错误或不良实践:
SELECT列表中的非聚合列必须出现在GROUP BY子句中。
错误示例: SELECT department, name, AVG(salary) FROM Employees GROUP BY department;
HAVING用于过滤分组后的结果,WHERE用于过滤行。
错误示例: SELECT department, AVG(salary) FROM Employees HAVING salary > 5000 GROUP BY department;
多表连接时缺少ON条件会导致笛卡尔积。
错误示例: SELECT * FROM Students JOIN grade;
多表查询时,相同列名需要指定表名前缀。
错误示例: SELECT id, name FROM Students JOIN grade ON Students.id = grade.sid;