Maximum eines Count bestimmen

Hallo Community!

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?

Danke für eure Hilfe!

Hallo Community!

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).

Gruß

J.

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).

Gruß

J.

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);

Marc

Probier mal folgendes (ungetestet):
SELECT MAX(AnzahlHersteller) FROM (SELECT COUNT(art_nr) AS
AnzahlHersteller FROM artikel GROUP BY herstellername);

Marc

Wahrhaftig eine geniale Idee. Es fehlte nur noch ein Alias am Ende. Ich habe mir erlaubt das zu ergänzen:

SELECT MAX(AnzahlHersteller) FROM (SELECT COUNT(art_nr) AS AnzahlHersteller FROM artikel GROUP BY herstellername) AS max;
Danke an meine Helfer!