SQL-如何计算过去7天内每天的不同ID?

时间:2018-09-12 19:08:16

标签: sql group-by count grouping distinct-values

因此,我正在尝试获取最近7天每天的注册销售不同用户数。这是我的桌子的一个样本:

ID      Date   
1    2018-01-01
2    2018-01-02
3    2018-01-03
3    2018-01-04
2    2018-01-05
4    2018-01-06
5    2018-01-07
2    2018-01-08

这是我期望的结果:

Distinct IDs      Date   
1               2018-01-01
2               2018-01-02
3               2018-01-03
3               2018-01-04
3               2018-01-05
4               2018-01-06
5               2018-01-07
4               2018-01-08

就好像我在按日期和日期前6天的组数来计算不同的ID一样。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

可能最简单的方法是使用相关子查询:

select t.date,
       (select count(distinct t2.id)
        from t t2
        where t2.date >= t.date - interval '6 day' and t2.date <= t.date
       ) as uniques_7day
from (select distinct date
      from t
     ) t;

请注意,您尚未指定数据库,因此它使用ANSI / ISO标准SQL语法。