質問

私はこのコードを使用しています:

  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

合計レポートが3より大きい場合にのみ取得するにはどうすればよいですか?私は試した:

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 by mach_no by maintenance_logグループからtotal_reportsとしてmach_no、count(mach_no)を選択しますhaving count(mach_no) > 3

Total_Reports> 3の代わりに、count(mach_no)> 3を試してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top