在同一SQL查询中使用ROUND,AVG和COUNT

时间:2017-12-11 18:19:45

标签: sql oracle

我需要编写一个查询,我需要首先统计在某个部门工作的人员,然后计算在某个部门工作的普通人,最后将其四舍五入到一个小数位。我尝试了很多不同的变化。

这就是我到目前为止所做的,虽然它不是我尝试的第一个,但我总是得到相同的错误信息。 (ORA-00979 - 不是按表达式分组)

{{1}}

我真的不知道在这一点上做了什么,并希望得到任何帮助。

员工表: enter image description here

1 个答案:

答案 0 :(得分:0)

从您的描述中尝试此(Oracle语法)示例:

with department_count as (
SELECT department_id, COUNT(c.employee_id) as employee_count
FROM employees c
group by department_id
)
SELECT department_id,
    ROUND(AVG(c.employee_count),1)
FROM department_count c
GROUP BY department_id;

但这个查询没有意义。 Count是整数,在这种情况下,count为一个部门返回一个数字AVG返回与count相同的值。

也许你已经计算了员工人数和部门薪资水平?