计数时如何排除重复?

问题描述 投票:0回答:1

说我有以下数据:

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)

但我无法弄清楚如何排除重复。

sql sql-server azure-sql-database azure-sql-server
1个回答
3
投票

我想你想要count(distinct)

SELECT DATENAME(dw,dateVisited), COUNT(DISTINCT id)
FROM myTable 
GROUP BY DATENAME(dw, dateVisited)
© www.soinside.com 2019 - 2024. All rights reserved.