SQL查询分组依据时出错
我想按部门编号和年龄选择平均工资,我使用了此查询SQL查询分组依据时出错,sql,oracle,group-by,Sql,Oracle,Group By,我想按部门编号和年龄选择平均工资,我使用了此查询 SELECT DEPARTMENT_NUMBER, ROUND((MONTHS_BETWEEN(SYSDATE, BIRTHDAY)) / 12) AS AGE, AVG(SALARY) FROM EMPLOYEE GROUP BY DEPARTMENT_NUMBER, AGE; 但我得到了一个错误: ORA-00904:“年龄”:无效标识符 您不能在Oracle中的“分组依据”中使用列别名。只需
SELECT
DEPARTMENT_NUMBER,
ROUND((MONTHS_BETWEEN(SYSDATE, BIRTHDAY)) / 12) AS AGE,
AVG(SALARY)
FROM
EMPLOYEE
GROUP BY
DEPARTMENT_NUMBER, AGE;
但我得到了一个错误:
ORA-00904:“年龄”:无效标识符
您不能在Oracle中的“分组依据”中使用列别名。只需使用子查询:
SELECT DEPARTMENT_NUMBER, AGE, AVG(SALARY)
FROM (SELECT e.*, ROUND((MONTHS_BETWEEN(SYSDATE,BIRTHDAY))/12) AS AGE
FROM EMPLOYEE
) e
GROUP BY DEPARTMENT_NUMBER, AGE;
无法按别名分组,请尝试以下操作:
SELECT DEPARTMENT_NUMBER
,ROUND((MONTHS_BETWEEN(SYSDATE,BIRTHDAY))/12) AS AGE
,AVG(SALARY)
FROM EMPLOYEE
GROUP BY DEPARTMENT_NUMBER, ROUND((MONTHS_BETWEEN(SYSDATE,BIRTHDAY))/12);
标记甲骨文。Oracle错误来自Oracle数据库。