Vinzenz Mai: MySql - MAX() von COUNT()

Beitrag lesen

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