Oracle中的SUM(COUNT(*))

aravind nk

我正在Oracle的HR​​模式中使用流行的employee表。示例数据:https : //imgur.com/3Xw6go7我正在尝试找出该表中具有相同薪水的人数以及所占百分比。

但是,尝试以下查询时出现错误:

SELECT SALARY, count(*),((count(*)/sum(count(*))))*100 FROM EMPLOYEES
group by salary;

ORA-00937: not a single-group group function
00937. 00000 -  "not a single-group group function"
*Cause:    
*Action:

但是,当我尝试下面的查询时,我得到了期望的结果。

SELECT SALARY, count(*),(count(*)/(select sum(count(*)) from employees group by salary))*100 FROM EMPLOYEES
group by salary;

有人可以告诉我如何使用第一个查询本身实现目标吗?我知道count()返回许多行,而sum(count())仅返回1行。

戈登·利诺夫

您缺少该OVER()子句:

SELECT SALARY, count(*),
       count(*) * 100 / sum(count(*)) OVER ()
FROM EMPLOYEES
GROUP BY salary;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档