我正在使用此代码:

  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的位置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top