Entwickler-Ecke

Datenbanken - Verschiedene Datensätze Zählen mit MySQL


HolgerB - Mi 26.03.08 20:48
Titel: Verschiedene Datensätze Zählen mit MySQL
Hallo zusammen,

ich beschäftige mich grade mit einer SQL Abfrage um eine Tabelle auszuwerten. Ich möchte ermittel wie viele unterschiedliche Werte sich in einer Spalte befinden. Gibt es dafür einen bestimmten Befehl wie Count?

Hier die genaue Problemstellung:

Ich habe eine Tabelle mit vier Spalten mit Daten für eine Turnieranmeldung.

ID
Name (des Starters)
Klasse (Wettkampfklasse)
Verein

Ich möchte mit einer Abfrage die folgenden drei Spalten füllen:

Klasse (Name der Klasse)
Anzahl (Anzahl der Starter)
Vereine (Anzahl unterschiedlicher Vereine)

So weit bin ich:


SQL-Anweisung
1:
SELECT klasse , count(klasse) AS 'Anzahl' FROM test GROUP BY  klasse                    


Weiter komme ich nicht.

Könnt Ihr mir helfen?

Gruß
Holger


Xion - So 30.03.08 14:40

hmmm, also ich würde das nicht alles in eine Anweisung pressen.

erst würde ich mal durchlaufen und alle verschiedenen Klassen auslesen (Table1.FieldByName usw.

dann würde ich für jede Klasse eine Abfrage erstellen:

SQL-Anweisung
1:
SELECT KLASSE FROM test WHERE (KLASSE=gefundeneKlassen[i]);                    

einträge im Query mittels Count zählen
=> Liste aller Klassen mit Anzahl an Teilnehmern. Problematischer wirds, wenn Leute mehrmals vorhanden sein könnten

um die verschiedenen Klassen/Vereine zu bekommen, müsste man das wohl über 2 for-Schleifen lösen, was ziemlich schlecht bei großen Datenmengen wird (quadratische Laufzeit).

Soweit mein Gedankenanstoß ^^ geht sicher auch direkt mit SQL, aber da hab ich zu wenig Ahnung von.