如何解决oracle sql中我的查询中的ORA-00937:不是单组组函数?

问题描述 投票:0回答:1

当我运行这个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

我做错了什么?

sql oracle
1个回答
0
投票
  1. 你的查询抛出了一个错误,因为你不能使用 having 而不使用 group by.
  2. 你错过了 group by 在外部查询中也是如此,每当你使用聚合函数时,你必须使用 group by
  3. 你必须给你的子查询起一个别名。

将您的查询替换为以下内容。

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;
© www.soinside.com 2019 - 2024. All rights reserved.