计数时如何排除重复项?
How to exclude duplicates when counting?
假设我有如下数据:
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 次。所以对于上面的数据应该 return:
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)
但我不太明白如何排除重复项。
我想你想要 count(distinct)
:
SELECT DATENAME(dw,dateVisited), COUNT(DISTINCT id)
FROM myTable
GROUP BY DATENAME(dw, dateVisited)
假设我有如下数据:
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 次。所以对于上面的数据应该 return:
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)
但我不太明白如何排除重复项。
我想你想要 count(distinct)
:
SELECT DATENAME(dw,dateVisited), COUNT(DISTINCT id)
FROM myTable
GROUP BY DATENAME(dw, dateVisited)