【问题标题】:How to exclude duplicates when counting?计数时如何排除重复项?
【发布时间】:2019-03-12 22:04:35
【问题描述】:

假设我有如下数据:

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】:

    我想你想要count(distinct):

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

    【讨论】:

      猜你喜欢
      • 2013-08-03
      • 2022-11-01
      • 1970-01-01
      • 2022-01-03
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      相关资源
      最近更新 更多