SQL Zählen von Datensätzen mit zwei Kriterien

Schumiel

Lieutenant
Registriert
Jan. 2010
Beiträge
846
Hallo,

ich habe grade einen Blackout und komme einfach nicht auf die Lösung.

Beispieldaten:

Code:
ID_Nummer | ID_Test
1 | 1
1 | 2
1 | 1
1 | 3
1 | 1
2 | 3
2 | 5
2 | 2
2 | 1

Ich möchte wissen, wie viel Datensätze ID_Nummer mit verschiedenen ID_Test hat?
Das heißt, das Ergebnis für ID_Nummer 1 ist 3, weil er die Position 1,2 und 3 von ID_Test hat.

Zur Übersichtslösung:
ID_Number 1 => 3
ID_Number 2 => 4

Ich hatte es mit GROUP BY versucht, aber dann gibt er mir immer die niedrigste Zahl von ID_Test aus.

Kann mir jemand dabei helfen?
 
Geht das nicht mit Count?

SELECT COUNT(ID_Nummer)
FROM Tabelle
where ID_Nummer = ID_Test

Oder wie hast du es gemeint?

Gruß
 
Ah, jetzt hab ichs geschnallt was du willst :)

Passt denn dann folgendes:

Select COUNT(DISTINCT ID_Nummer)
FROM Tabelle

Gruß
 
Vorweg die Frage, was benutzt du? MSSQL MySQL ...?

Mit DISTINCT kannst du Dublikate "aussondern", dann bekommst du z.b. für ID_NUMMER immer nur einmal einen Datensatz mit einer ID_TEST. Dann musste du nur noch mit COUNT mitzählen.

EDIT:
zu langsam ;)
 
Fr4g3r schrieb:
Select COUNT(DISTINCT ID_Nummer)
FROM Tabelle

eigentlich nicht, da du damit keine Zuordnung von ID_Nummer -> DISTINCT ID_Test hast.
Es seiden ich habe komplett falsch verstanden, was du erreichen möchtest.


ich denke so müsste es stimmen:
Code:
SELECT ID_Nummer, COUNT(DISTINCT ID_Test)
FROM tabelle
GROUP BY ID_Nummer
 
Bei dem Beispiel von oben sollte es eigentlich auch mit meiner Abfrage klappen.
Dabei kommt es aber auch auf die Datenbank und das DBMS an.

Gruß
 
Danke. Genau danach habe ich gesucht. Ich bin aber auch ehrlich, dass ich das dann doch nicht ohne weiteres hinbekommen hätte. Weil an distinct habe ich jetzt gar nicht gedacht.

Eine letzte Frage noch. Ich möchte mir die Datensätze von ID_Nummer 1 ausgeben lassen. Aber wenn ID_test doppelt ist, soll mir trotzdem nur einmal die Zahl ausgegeben werden.

Lösungsbeispiel:
1 | 1
1 | 2
1 | 1

Das heißt, die ID_test 1 ist ja mehrmals bei ID_Nummer 1 vertreten, soll dann aber nur einmal ausgegeben werden.

Wie geht das?
 

Ähnliche Themen

Zurück
Oben