Können Sie die eindeutige Kombination von 2 verschiedenen Feldern in einer Datenbanktabelle erhalten? Wenn ja, können Sie das SQL-Beispiel angeben.SQL distinct für 2 Felder in einer Datenbank
61
A
Antwort
94
Wie wäre es einfach:
select distinct c1, c2 from t
oder
select c1, c2, count(*)
from t
group by c1, c2
15
Wenn Sie von unterschiedlichen Werten wollen nur zwei Felder, und das Rück andere Felder, die mit ihnen, dann die anderen Felder müssen irgendeine Art von Aggregation haben auf ihnen (sum, min, max, usw.), und die zwei Spalten, die Sie distinct haben wollen, müssen in der group by-Klausel erscheinen. Ansonsten ist es nur so, wie Decker sagt.
3
Wenn Sie noch zu einer Gruppe von einer Spalte nur wollen (wie ich wollte) Sie können Nest die Abfrage:
select c1, count(*) from (select distinct c1, c2 from t) group by c1
3
können Sie durch zwei Spalten deutliche Ergebnis erhalten verwenden unter SQL:
SELECT COUNT(*) FROM (SELECT DISTINCT c1, c2 FROM [TableEntity]) TE
Abhängig von den Daten ist group by langsamer als distinct – noizer
Für diejenigen, die sehen, dass 'Operand 1 Spalte (n) 'Fehler enthalten sollte, ist Ihr Problem, dass Sie wahrscheinlich tun' Select distinct (c1, c2) von t' und Sie sind nicht erlaubt Klammern hier. So bin ich hier angekommen. – BookOfGreg