非法使用组函数这个问题,在 Oracle SQL 里还是蛮常见的。简单来说,当你在 SELECT 语句中使用了聚合函数(比如COUNT
),但是没有把非聚合列加到GROUP BY
子句里,系统就会报错,类似ORA-00937: not a single-group function
。这种错误可以通过将所有非聚合列放到GROUP BY
子句中。举个例子,如果你执行以下语句:
SELECT studentid, COUNT(sname) FROM student;
就会遇到问题,正确的写法应该是:SELECT studentid, COUNT(sname) FROM student GROUP BY studentid;
这样才能顺利执行。如果你在实际开发中遇到类似的问题,记得注意一下 SQL 语法,避免类似的错误。比如你需要聚合的列,必须要么在GROUP BY
子句里,要么参与聚合函数的计算。