试着理解GROUP BY在SQL中的用法
我已经多次遇到这个错误,并且我无法确定内核,以便在以后的时间内解决它
SELECT d.department_name
FROM departments d
JOIN employees e
ON (d.department_id = e.department_id)
GROUP BY d.department_name
HAVING (SELECT COUNT(*) FROM employees) > 5
AND e.commission_pct IS NOT NULL;ORA-00979: not a GROUP BY expression
00979. 00000 - "not a GROUP BY expression"
*Cause:
*Action:
Error at Line: 7 Column: 5发布于 2019-09-26 13:35:33
拥有按其分组的列是它的构建方式。因此,拥有允许您聚合或操作group by的列。获得group by错误的原因是使用了子查询,而不是group by或aggregate列。
简而言之,having类似于where,但having允许您过滤组中的记录,而不是where用于过滤整个表本身的记录
SELECT d.department_name
FROM departments d
JOIN employees e
ON (d.department_id =
e.department_id)
Where
e.commission_pct IS NOT NULL
GROUP BY d.department_name
HAVING COUNT(*) > 5
;https://stackoverflow.com/questions/58109497
复制相似问题