Vinzenz Mai: GROUP BY von GROUP BY-Ergebnis

Beitrag lesen

Hallo

Folgendes Ergebnis wird angezeigt:

ID |SUM(Anzahl)
01|4
02|2
03|1
04|0
05|2

Jedoch möchte ich wissen, wieviele IDs mit beispielsweise der Summe 2 existieren.
D.h. die Tabelle sollte so ausschauen:

Sum(Anzahl) | Summe der IDs
0|1
1|1
2|2
4|1

Das geht ganz einfach mit einem Subselect, genauer gesagt nimmst Du Deine bisherige Abfrage als Subselect. Geht natürlich nur, wenn Dein DBMS Subselects unterstützt - das ist bei fast allen mir bekannten Datenbankmanagementsystemen der Fall mit der Ausnahme von älteren MySQL-Versionen. Bei MySQL ist 4.1 oder neuer erforderlich.

SELECT  
    Summe,  
    COUNT(Summe)  
FROM (  
    SELECT  
        ID,  
        SUM(Anzahl) AS Summe -- Aliasname sinnvoll, da sonst der Spaltenname  
                             -- Escapen erfordert.  
    FROM ...  
    WHERE...  
    GROUP BY ID  
)  
GROUP BY Summe,  
ORDER BY Summe

sollte es tun (ungeprüft).

Freundliche Grüße

Vinzenz