Helmuth: MySql - MAX() von COUNT()

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:

id | data

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"

cnt | data | max_cnt

1   | 2    | 3
2   | 3    | 3
3   | 1    | 3
4   | 1    | 3

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