Czy możesz uzyskać wyraźną kombinację 2 różnych pól w tabeli bazy danych? jeśli tak, czy możesz podać przykład SQL.
84
A może po prostu:
select distinct c1, c2 from t
lub
select c1, c2, count(*)
from t
group by c1, c2
Operand should contain 1 column(s)
błąd, twój problem polega na tym, że prawdopodobnie to robiszselect distinct(c1, c2) from t
i nie możesz tutaj używać nawiasów. Tak się tu dostałem.Jeśli chcesz mieć różne wartości tylko z dwóch pól, a także zwrócić z nimi inne pola, to inne pola muszą mieć jakąś agregację (suma, min, maksimum itp.), A dwie kolumny, które chcesz odrębne, muszą pojawić się klauzula group by. W przeciwnym razie jest tak, jak mówi Decker.
źródło
Możesz uzyskać wynik odrębny za pomocą dwóch kolumn, używając poniżej SQL:
SELECT COUNT(*) FROM (SELECT DISTINCT c1, c2 FROM [TableEntity]) TE
źródło
Jeśli nadal chcesz grupować tylko według jednej kolumny (tak jak chciałem), możesz zagnieździć zapytanie:
select c1, count(*) from (select distinct c1, c2 from t) group by c1
źródło
Podziel się moją głupią myślą:
Może mogę wybrać inny tylko na c1, ale nie na c2, więc składnia może być
select ([distinct] col)+
gdziedistinct
jest kwalifikatorem dla każdej kolumny.Ale po namyśle stwierdzam, że wyróżnienie tylko jednej kolumny jest nonsensem . Weźmy następujący związek:
Jeśli mamy
select (distinct A), B
, to co jest właściweB
dlaA = 1
?Tak więc
distinct
jest kwalifikatorem dlastatement
.źródło