Hier ist meine Frage:komplexe Abfrage mit max();
SELECT GENRE,MAX(COUNT(GENRE))
FROM BOOKS
WHERE ID_BOOK IN(SELECT ID_BOOK
FROM SIGNATURES
WHERE SIGNATURE IN(SELECT SIGNATURE
FROM ORDERS
WHERE ID_READER=1))
GROUP BY GENRE;
ich einen Fehler:
SQL Error: ORA-00937: not a single-group group function
Wenn ich GENRE löschen, die es funktioniert in Ordnung kurz nach SELECT bleibt aber nur die Nummer erzeugt. Ich muss auch wissen, welches spezifische GENRE den maximalen Wert hat.
EDIT:
select GENRE,CNT INTO var_genre, var_max from (
SELECT GENRE,COUNT(GENRE) as CNT FROM BOOKS
WHERE ID_BOOK IN(SELECT ID_BOOK FROM SIGNATURES
WHERE SIGNATURE IN(SELECT SIGNATURE FROM ORDERS WHERE ID_READER=1))
GROUP BY GENRE
order by COUNT(GENRE) desc)
where rownum < 2;
Wenn die 'MAX (COUNT (Genre))' innerhalb der höchsten Zählung muss Der gesamte Satz, Sie müssen nur hinzufügen, OVER() ', um das vollständige Fenster anzuzeigen. –