我在Oracle Express中使用了HR员工模式,并希望选择特定年份入职的员工。
SELECT hire_date,
COUNT(*)
FROM employees empl
GROUP BY SUBSTR(hire_date, -4)
ORDER BY empl.hire_date;
招聘日期列的格式为“1/1/2011”,我想通过提取最后四个字符来对它们进行分组。
问题是,我遇到了以下错误:
ORA-00979: not a GROUP BY expression
00979. 00000 - "not a GROUP BY expression"
*Cause:
*Action:
Error at Line: 1 Column: 7
这可行吗?
substr()
?substr()
是用于varchar列的。如果您需要获取日期的部分,应改用to_char()
(或extract)。您正在依赖隐式数据转换,如果区域设置更改,则必定会出现错误。 - user330315