Ich frage über das SQL-Statement: SELECT COUNT(art_nr) from artikel Group by herstellername;
die Anzahl der Artikel eines herstellers ab. Jetzt möchte ich aber wissen, wer davon die meisten Artikel herstellt. SELECT MAX(COUNT(art_nr)) from artikel Group by herstellername;
funktioniert leider nicht. Wie kann ich das trotzdem umsetzen?
Ich frage über das SQL-Statement: SELECT COUNT(art_nr) from artikel Group by
herstellername;
die Anzahl der Artikel eines herstellers ab. Jetzt möchte ich
aber wissen, wer davon die meisten Artikel herstellt. SELECT MAX(COUNT(art_nr)) from artikel Group by
herstellername;
funktioniert leider nicht. Wie kann ich das trotzdem umsetzen?
Unter Oracle z.B. mit einer Inline-Query:
SELECT herstellername, COUNT(art\_nr)
from artikel
Group by herstellername
having count(art\_nr) = (Select max(count(art\_nr))
from artikel
Group by herstellername);
Beherrscht Dein RDBMS diese nicht, dann evtl. mit einem Subselect (einfach = durch IN ersetzen).
Erstmal vielen Dank für deine Antwort. Leider arbeite ich in Postgre. Und da gibt es folgende Fehlermeldung
PostgreSQL said: ERROR: Aggregate function calls may not be nested
Your query:
SELECT herstellername, COUNT(art_nr) from artikel Group by herstellername having count(art_nr) IN (Select max(count(art_nr)) from artikel Group by herstellername)
Scheint, als könnte ich MAX und COUNT nicht verschachteln.
Unter Oracle z.B. mit einer Inline-Query:
SELECT herstellername, COUNT(art_nr)
from artikel
Group by herstellername
having count(art_nr) = (Select max(count(art_nr))
from artikel
Group by herstellername);
Beherrscht Dein RDBMS diese nicht, dann evtl. mit einem
Subselect (einfach = durch IN ersetzen).
SELECT COUNT(art_nr) from artikel Group by
herstellername;
die Anzahl der Artikel eines herstellers ab. Jetzt möchte ich
aber wissen, wer davon die meisten Artikel herstellt. SELECT MAX(COUNT(art_nr)) from artikel Group by
herstellername;
Probier mal folgendes (ungetestet):
SELECT MAX(AnzahlHersteller) FROM (SELECT COUNT(art_nr) AS AnzahlHersteller FROM artikel GROUP BY herstellername);