2008-10-10 2 views

ответ

94

Как насчет просто:

select distinct c1, c2 from t 

или

select c1, c2, count(*) 
from t 
group by c1, c2 
+0

В зависимости от данных группа более медленная, чем разная. – noizer 2015-07-08 08:27:03

15

Если вы хотите различные значения только из двух полей, а также возвращать другие поля с ними, то остальные поля должны иметь какой-то агрегации на них (сумма, мин, макс и т. д.), а два столбца, которые вы хотите разделить, должны появиться в предложении group by. В противном случае, как говорит Декер.

3

Если вы все еще хотите, чтобы сгруппировать только одну колонку (как я хотел), вы можете гнездятся запрос:

select c1, count(*) from (select distinct c1, c2 from t) group by c1 
3

Вы можете получить результат отличается двумя колонками ниже использовать SQL:

SELECT COUNT(*) FROM (SELECT DISTINCT c1, c2 FROM [TableEntity]) TE