SQL按功能分组(列)-现在无法选择该列
||
我在Oracle Express中使用了HR员工架构,我想选择在特定年份雇用的员工。
SELECT hire_date,
COUNT(*)
FROM employees empl
GROUP BY SUBSTR(hire_date, -4)
ORDER BY empl.hire_date;
hirer_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
这不可能吗?
没有找到相关结果
已邀请:
4 个回复
泪琉踞檄
。考虑一下如果有两行,将会发生什么情况:
在将它们分组时生成的单行中,
应该是什么? 所选的每一列都必须是“分组依据”列或“聚合”列。换句话说,请尝试:
我要提到的是,每行函数在扩展方面非常差。如果要处理大量年份,则应考虑将其分成自己的列。这可能会大大提高性能,但是请不要猜测! 而且,正如其他人在评论中提到的那样,
可能不是最佳解决方案,因为这可能取决于语言环境(例如:日期格式可能为
,而with8 not可能不太适合)。 最好使用诸如
或robust10 something之类的东西,它应该更坚固。
郡豪靠暖
提孺局缎
稀瓣囊
查询的
部分中使用
条件或聚合函数(
等)。这有效: