Tom: SQL-Abfrage: Gruppieren

Beitrag lesen

Hallo Benni

Grundsätzlich wird die Gruppierung mittels 'GROUP BY' zum automatischen Berechnen von Summen, Anzahl, Durchschnitt, Maximal- und Minimalwerten, etc. verwendet (also im Zusammenhang mit den Aggregatsfunktionen). Wenn Du als z. B. die maximale Festplattenkapazität pro Hersteller suchst, kannst Du die Group-By-Klausel verwenden.

Nehmen wir einmal an, dass Deine Tabelle "Festplatten" heisst und folgende Felder und Datensätze aufweist:

IDHerstellerKapazitätsonstwas
1  IBM        20        
2  Quantum    20        
3  IBM        5        
4  Quantum    10        
5  IBM        10

Dann lautet das SQL-Statement zur Ermittlung der grössten Kapazität wie folgt:
SELECT Hersteller, max(Kapazität) as MaxKap
FROM Festplatten
GROUP BY Hersteller
ORDER BY Hersteller

Das Ergebnis sieht dann so aus:
HerstellerMaxKap
IBM        20 GB    
Quantum    20 GB

Dein geschildertes Problem, 'Gruppierung' nach Hersteller und Sortierung nach Kapazität lässt sich eher mit der Order-By-Klausel realisieren:
SELECT ID, Hersteller, Kapazität
FROM Festplatten
ORDER BY Hersteller, Kapazität

Dabei müsste das Ergebnis so aussehen:
IDHerstellerKapazitätsonstwas
3  IBM        5 GB      
5  IBM        10 GB    
1  IBM        20 GB    
4  Quantum    10 GB    
2  Quantum    20 GB

Hoffentlich funktioniert das bei Dir so, wie hier beschrieben. Das Ganze ist jedoch nicht auf MySql sondern auf MS-SQL getestet.

Grüsse

Tom