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
合計レポートが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を試してください。
所属していません StackOverflow