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

SQL - How can I count distinct IDs for each day within the last 7 days?

因此,我试图获取过去 7 天每天注册销售额的不同用户数。这是我拥有的 table 的示例:

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。有什么想法吗?

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

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 语法。