SQL Count()帮助选择说明
题
我正在使用此代码:
SELECT MACH_NO,
COUNT(MACH_NO) AS TOTAL_REPORTS
FROM MAINTENANCE_LOG
GROUP BY MACH_NO;
...检索一些给出的数据:
MACH_NO TOTAL_REPORTS
----------------------
1 4
5 2
8 1
7 1
如何仅在总报告大于三个的地方才能检索?我试过:
WHERE TOTAL_REPORTS > 3
...但是说
ORA-00904:“ total_reports”:无效标识符
解决方案
由于您已经使用了 GROUP BY
, ,你应该使用 HAVING
而不是 WHERE
. 。您还需要明确使用 COUNT(MACH_NO)
而不是你的别名 TOTAL_REPORTS
.
所以使用 HAVING COUNT(MACH_NO) > 3
, , 而不是 WHERE TOTAL_REPORTS > 3
.
SELECT MACH_NO,
COUNT(MACH_NO) AS TOTAL_REPORTS
FROM MAINTENANCE_LOG
GROUP BY MACH_NO
HAVING COUNT(MACH_NO) > 3;
其他提示
采用 有 条款
SELECT MACH_NO, COUNT(MACH_NO) AS TOTAL_REPORTS FROM MAINTENANCE_LOG GROUP BY MACH_NO HAVING TOTAL_REPORTS > 3;
选择Mach_no,Count(Mach_no)作为Mach_no的VAINTANTION_LOG组的total_reportshaving count(mach_no) > 3
而不是total_reports> 3,而是尝试count(mach_no)> 3的位置。
不隶属于 StackOverflow