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 语法。
因此,我试图获取过去 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 语法。