Können Sie die unterschiedliche Kombination von 2 verschiedenen Feldern in einer Datenbanktabelle erhalten? Wenn ja, können Sie das SQL-Beispiel bereitstellen.
84
Wie wäre es einfach:
select distinct c1, c2 from t
oder
select c1, c2, count(*)
from t
group by c1, c2
Operand should contain 1 column(s)
Fehler sehen, besteht Ihr Problem darin, dass Sie dies wahrscheinlich tunselect distinct(c1, c2) from t
und hier keine Klammern zulässig sind. So bin ich hierher gekommen.Wenn Sie unterschiedliche Werte von nur zwei Feldern wünschen und andere Felder mit diesen zurückgeben möchten, müssen die anderen Felder eine Art Aggregation aufweisen (Summe, Min, Max usw.), und die beiden Spalten, die Sie unterscheiden möchten, müssen in angezeigt werden die group by-Klausel. Ansonsten ist es genau so, wie Decker sagt.
quelle
Sie können das Ergebnis durch zwei Spalten unterscheiden, die unter SQL verwendet werden:
quelle
Wenn Sie immer noch nur nach einer Spalte gruppieren möchten (wie ich wollte), können Sie die Abfrage verschachteln:
quelle
Teile meinen dummen Gedanken:
Vielleicht kann ich nur auf c1, aber nicht auf c2 unterscheiden, also kann die Syntax sein,
select ([distinct] col)+
wodistinct
ein Qualifikator für jede Spalte ist.Aber nach dem Nachdenken finde ich, dass es Unsinn ist, nur in einer Spalte zu unterscheiden . Nehmen Sie die folgende Beziehung:
Wenn wir
select (distinct A), B
, was ist dann das richtigeB
fürA = 1
?Somit
distinct
ist ein Qualifier für astatement
.quelle