#sql #sql-server #azure-sql-database #azure-sql-server
#sql #sql-сервер #azure-sql-database #azure-sql-server
Вопрос:
Допустим, у меня есть данные, подобные приведенным ниже:
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:
Я думаю, вы хотите count(distinct)
:
SELECT DATENAME(dw,dateVisited), COUNT(DISTINCT id)
FROM myTable
GROUP BY DATENAME(dw, dateVisited)