使用avgsql查询的内部连接
我是sql新手,我正在处理具有id和金额行的工资表(按年份-每个员工最多可以有30行工资)和具有id名称和姓氏行的员工表,我想获得每个员工的平均工资以及名字和姓氏,我不确定为什么它不适用于我:使用avgsql查询的内部连接,sql,Sql,我是sql新手,我正在处理具有id和金额行的工资表(按年份-每个员工最多可以有30行工资)和具有id名称和姓氏行的员工表,我想获得每个员工的平均工资以及名字和姓氏,我不确定为什么它不适用于我: SELECT t.FIRST_NAME, AVG(g.SALARY) FROM SALARIES AS g JOIN EMPLOYEES as t ON t.EMP_NO = g.EMP_NO GROUP BY t.EMP_NO; 首先,需要选择所需的列 其次,您需要使SELECT列与
SELECT t.FIRST_NAME, AVG(g.SALARY)
FROM SALARIES AS g
JOIN EMPLOYEES as t
ON t.EMP_NO = g.EMP_NO
GROUP BY t.EMP_NO;
首先,需要选择所需的列 其次,您需要使
SELECT
列与groupby
列一致
因此,我建议:
SELECT e.EMP_NO, e.LAST_NAME, e.FIRST_NAME, AVG(s.SALARY)
FROM SALARIES s JOIN
EMPLOYEES e
ON e.EMP_NO = s.EMP_NO
GROUP BY e.EMP_NO, e.LAST_NAME, e.FIRST_NAME;
这将取
工资
中与员工
中的一行匹配的所有行的平均值。如果工资
对一名员工有多行,例如存储随时间的变化,那么平均值可能不是您想要计算的值。首先,您需要选择所需的列
其次,您需要使SELECT
列与groupby
列一致
因此,我建议:
SELECT e.EMP_NO, e.LAST_NAME, e.FIRST_NAME, AVG(s.SALARY)
FROM SALARIES s JOIN
EMPLOYEES e
ON e.EMP_NO = s.EMP_NO
GROUP BY e.EMP_NO, e.LAST_NAME, e.FIRST_NAME;
这将取
工资
中与员工
中的一行匹配的所有行的平均值。如果salaries
为一名员工设置了多行(例如存储随时间的变化),则平均值可能不是您想要计算的值。仅标记您使用的数据库。仅标记您使用的数据库。