当我运行这个SQL查询时。
SELECT id,
managerID,
MAX(salary)
FROM DataTable
WHERE id >
( SELECT id
FROM DataTable
WHERE salary <= 10
AND managerID
HAVING COUNT(*) > 1
)
我得到这个错误。
ORA-00937: not a single-group group function
我做错了什么?
- 你的查询抛出了一个错误,因为你不能使用
having
而不使用group by
.- 你错过了
group by
在外部查询中也是如此,每当你使用聚合函数时,你必须使用group by
- 你必须给你的子查询起一个别名。
将您的查询替换为以下内容。
select
id,
manager_id,
max(salary)
from DataTable
where id > (
select
id
from DataTable
where salary <=10
group by
id
having count(*)>1
) t
group by
id,
manager_id;