SQl count () Hilfe mit einer select-Anweisung
Frage
Ich verwende diesen Code:
SELECT MACH_NO,
COUNT(MACH_NO) AS TOTAL_REPORTS
FROM MAINTENANCE_LOG
GROUP BY MACH_NO;
... einige Daten abzurufen, die gibt:
MACH_NO TOTAL_REPORTS
----------------------
1 4
5 2
8 1
7 1
Wie kann ich nur abrufen, wenn die Gesamt Berichte größer als drei? Ich habe versucht:
WHERE TOTAL_REPORTS > 3
... aber es sagt,
ORA-00904: "TOTAL_REPORTS": ungültige Kennung
Lösung
Da Sie eine GROUP BY
verwendet haben, sollten Sie HAVING
statt WHERE
verwenden. Sie müssen auch explizit COUNT(MACH_NO)
verwenden, anstatt Ihren Alias ??TOTAL_REPORTS
.
So verwenden HAVING COUNT(MACH_NO) > 3
statt 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;
Andere Tipps
Verwenden Sie MIT KLAUSEL
SELECT MACH_NO, COUNT(MACH_NO) AS TOTAL_REPORTS FROM MAINTENANCE_LOG GROUP BY MACH_NO HAVING TOTAL_REPORTS > 3;
SELECT MACH_NO, COUNT (MACH_NO) AS TOTAL_REPORTS FROM MAINTENANCE_LOG GROUP BY MACH_NO
having count(mach_no) > 3
Statt WHERE TOTAL_REPORTS> 3, versuchen WHERE COUNT (MACH_NO)> 3.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow