不是单组分组函数,具有选中的聚合函数

问题描述 投票:0回答:1

我有以下查询:

SELECT
    COUNT(*) AS "Number of Employees",
    EXTRACT(MONTH FROM hire_date) AS "Month Hired",
    AVG(salary)
FROM
    hr.employees;

它给了我错误:ORA-00937: not a single-group group function。我尝试了其他人提供的其他资源和答案,但是在我的情况下它们不起作用。

我该如何解决?

sql oracle
1个回答
0
投票

添加GROUP BY

SELECT COUNT(*) AS "Number of Employees",
       EXTRACT(MONTH FROM hire_date) AS "Month Hired",
       AVG(salary)
FROM hr.employees
GROUP BY EXTRACT(MONTH FROM hire_date);

[您可能只对录用月份感兴趣的原因。但是,通常情况下,您也需要年份。在Oracle中,通常使用TO_CHAR()

完成
SELECT TO_CHAR(hire_date, 'YYYY-MM') as month_hired,
       COUNT(*) AS num_empoyees,
       AVG(salary)
FROM hr.employees
GROUP BY TO_CHAR(hire_date, 'YYYY-MM')
ORDER BY month_hired;
© www.soinside.com 2019 - 2024. All rights reserved.