MySql - MAX() von COUNT()
Helmuth
- datenbank
Hallo liebe Leute,
es geht um folgendes. Ich habe ein Tabelle, bei der ich einen COUNT über eine Spalte machen möchte. Soweit ja kein Problem, aber ich möchte dazu wissen, welches der höchste COUNT, also MAX COUNT war.
SELECT COUNT(id) AS cnt, data GROUP BY data;
Vorher:
1 | 1
2 | 1
3 | 2
4 | 2
5 | 2
6 | 3
7 | 4
Und so hätte ich es gerne nachher (es geht um die Spalte "max_cnt"
1 | 2 | 3
2 | 3 | 3
3 | 1 | 3
4 | 1 | 3
Hallo Helmuth,
es geht um folgendes. Ich habe ein Tabelle, bei der ich einen COUNT über eine Spalte machen möchte. Soweit ja kein Problem, aber ich möchte dazu wissen, welches der höchste COUNT, also MAX COUNT war.
SELECT COUNT(id) AS cnt, data GROUP BY data;
Und so hätte ich es gerne nachher (es geht um die Spalte "max_cnt"
vermutlich hast Du die Spaltenüberschriften cnt und data vertauscht.
cnt | data | max_cnt
1 | 2 | 3
2 | 3 | 3
3 | 1 | 3
4 | 1 | 3
Welche MySQL-Version ist im Einsatz?
Das Maximum von cnt bekommst Du übrigens mit
SELECT -- Gib mir den maximalen Wert
MAX(g.cnt) max_cnt -- der berechneten Spalte cnt
FROM ( -- der Abfrage
SELECT -- Gib mir
COUNT(id) cnt, -- die Anzahl des Auftretens
data -- eines bestimmten Wertes
FROM -- aus
tabelle -- meiner Tabelle
GROUP BY -- gruppiert nach
data -- genau diesen Werten
) g -- die unter dem Namen g angesprochen wird
-- (temporärer View)
Überlege Dir, ob Du in Deiner (äußeren) Abfrage, die Dein Ergebnis lieferen soll, gruppieren darfst. Befrage EXPLAIN, welchen Aufwand Deine Abfrage verursacht.
Freundliche Grüße
Vinzenz