获取每位员工的平均工资

时间:2018-08-01 04:36:08

标签: sql oracle plsql group-by aggregate-functions

几天前,我从零开始学习PL / SQL(没有SQL背景),现在我正尝试使用汇总函数,并试图获得每个员工的平均工资。

表如下所示:

表1:

enter image description here

我想看看:

表2:

enter image description here

此刻,我正在做这样的事情:

SELECT
  employee, AVG(salary)
FROM
  employees

GROUP BY employee, salary

但是给出的结果与表1相同。

换句话说,我想学习如何将许多行合并或聚合为一个行。基本上,计算每个雇员的平均工资,并仅与该雇员及其相应的AVG(SALARY)显示一行。

这是不可能的还是我只是做错了什么?

谢谢。

2 个答案:

答案 0 :(得分:3)

尝试一下:只需从分组依据中删除薪水列

 SELECT employee, AVG(salary) FROM employees
   GROUP BY employee

答案 1 :(得分:1)

这对我来说很尴尬,但如果有人遇到与我相同的问题,我不会删除该问题。

错误在group by中,我应该只按employee分组。

由于某种原因,我认为我必须按SELECT中出现的每一列进行分组。

因此,查询应为:

SELECT
    employee, AVG(salary)
FROM
    employees  
GROUP BY 
    employee -- ERROR WAS HERE, leave just employee. -.-

很抱歉没有注意到以前的菜鸟错误。