Die Anzahl verschiedener Werte pro Unique Key ist doch die
Anzahl Datensätze, da der Schlüssel eindeutig ist, oder?
Okay, das mit dem UK war vielleicht missverständlich… meine Frage ist eigentlich unabhängig davon. Ich versuch´s mal allgemeiner…
Also, eine Tabelle DATEN mit Attributen PK, NAME(UK), SPRACHE
(sagt jetzt nicht, dass es Quatsch ist, ein UK_constr. auf einem NAMEn zu haben - es ist nur ein Beispiel)
Mich interessiert jetzt, ob zu allen/jedem NAMEn in der Tabelle mehr als eine SPRACHE auftritt ( genaugenommen: 1 ). In dem Statement will ich „nur“ abfragen, ob zu einem NAMEn (daher dann eben die alte Formulierung „pro UK“, was falsch war, da der noch mehr Attribute enthält, NAME ist nicht alleine im UK!) immer genau eine SPRACHE vorkommt - wenn ‚ja‘ ist´s okay, wenn ‚nein‘ dann ‚Fehlermeldung‘. Wie gesagt, ich hoffe, das mit einem Statement lösen zu können, ohne über alle NAMEn z.B. loopen zu muessen (ich habe an der Stelle keine konkreten Werte).
Ich hoffe, es nun etwas klarer rübergebracht zu haben…
Merci!
o
Du meinst eine Gruppierung über den NAMEN und eine Zählung der auftretenden Werte pro Gruppe:
select name, count(sprache)
from tabelle
group by name
having count(sprache) \> 1;
Die Having-Klausel wirkt wie eine Where-Klausel, die auf die Ergebnisse einer Gruppenfunktion angewendet wird. Beachte, daß ich „> 1“ schreibe und nicht " 1", da ein Datensatz mit count = 0 existiert gar nicht, da er aus der Gruppierung runterfällt.
Gruß
J.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
das ging ja fix - und das an einem Samstag:wink:
Danke, das klingt gut; muss morgen nochmal ins Büro und werd´s dann ausprobieren.
‚having‘ hab’ ich bisher zwar gekannt aber nie für nutzenswert gehalten…
Danke nochmal & schönes Wochenende!
o
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]