Как исключить дубликаты при подсчете? - PullRequest
0 голосов
/ 13 марта 2019

Скажем, у меня есть данные, подобные приведенным ниже:

id, dateVisited
1   3/4/2019  --Monday
1   3/4/2019  --Monday
1   3/5/2019  --Tuesday
2   3/4/3019  --Monday
2   3/5/2019  --Tuesday
2   3/7/2019  --Thursday
3   3/7/2019  --Thursday
4   3/5/2019  --Tuesday
5   3/8/2019  --Friday

Как я могу получить количество посещений в день, но только подсчет определенного id самое большее 1 раз в данный день,Так что для приведенных выше данных он должен вернуть:

day, visits
2    2     --show 2 here instead of 3 because ID 1 visited twice on 3/4
3    2
5    2
6    1

Я могу получить необработанные итоги, выполнив:

SELECT COUNT(*) FROM myTable group by DATENAME(dw,dateVisited)

, но я не могу понять, как исключить дубликаты.

1 Ответ

3 голосов
/ 13 марта 2019

Я думаю, что вы хотите count(distinct):

SELECT DATENAME(dw,dateVisited), COUNT(DISTINCT id)
FROM myTable 
GROUP BY DATENAME(dw, dateVisited)
...