Sql 什么';oracle 11g上出现ORA-00979的原因是什么
试图理解SQL中的Sql 什么';oracle 11g上出现ORA-00979的原因是什么,sql,oracle,group-by,Sql,Oracle,Group By,试图理解SQL中的groupby用法 我已经多次遇到这个错误,我可能无法识别核心,以便在以后的时间里解决它 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 I
groupby
用法
我已经多次遇到这个错误,我可能无法识别核心,以便在以后的时间里解决它
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:不是表达式分组
97900000-“不是表达式的组”
*原因:
*行动:
第7行第5列出错
您的语法错误,条件应在where子句中,having不应重新选择值
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 ;
请参见您的语法错误,条件应在where子句中,having不应重新选择值
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 ;
参见have应该有按其构建方式分组的列。因此,having允许您聚合或操作group by的列。获取group by错误的原因是使用了子查询而不是group by或AGGRATE列 简言之,have与where类似,只是have允许您过滤组的记录,而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
;
它的构建方式应该是按它分组的列。因此,having允许您聚合或操作group by的列。获取group by错误的原因是使用了子查询而不是group by或AGGRATE列 简言之,have与where类似,只是have允许您过滤组的记录,而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
;