2016-10-03 5 views
0

Я пытаюсь подсчитать уникальные значения для каждого пользователя и в итоге получить комбинированный счет. Они могут существовать более одного раза для каждого пользователя, но должны учитываться только один раз для каждого пользователя.SQL - подсчет уникальных строк на основе отдельного поля

Пример:

user value 
1  AAA 
1  AAA 
1  BBB 
1  CCC 
2  AAA 
2  CCC 
2  CCC 
3  AAA 
3  BBB 
3  BBB 
3  BBB 

Ожидаемый результат со счетом:

AAA 3 
BBB 2 
CCC 2 

Так значения должны учитываться только один раз для каждого пользователя, независимо от того, сколько раз они присутствуют.

Я получил по мере подсчета общего количества значений с этим:

SELECT value, COUNT(value) FROM table GROUP BY value") 

Но это подсчитывает все экземпляры каждого значения, я не могу работать, как рассчитывать только уникальные значения за пользователем и комбайн. Надеюсь, это имеет смысл! Большое спасибо!

ответ

4

Попробуйте это:

SELECT value, COUNT(distinct user) FROM table GROUP BY value