我正在查询以获得日常基础上累积的不同计数的uid。累计不同计数
例如:假设有2个uid(100,200)在2016-11-01出现,他们也在第二天在2016-11-02 上出现了新的uid 300(100,200,300)在这一点上我想要存储累计计数为3而不是5(用户标识100和200在过去一天已经出现)。
Input table:
date uid
2016-11-01 100
2016-11-01 200
2016-11-01 300
2016-11-01 400
2016-11-02 100
2016-11-02 200
2016-11-03 300
2016-11-03 400
2016-11-03 500
2016-11-03 600
2016-11-04 700
Expected query result:
date daily_cumulative_count
2016-11-01 4
2016-11-02 4
2016-11-03 6
2016-11-04 7
到目前为止,我可以获得每天累积的不同计数,但它也包括前一天的不同uid。
SELECT
date,
SUM(count) OVER (
ORDER BY date ASC
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
)
FROM (
SELECT
date,
COUNT(DISTINCT uid) AS count
FROM sample_table
GROUP by 1
)ORDER BY date DESC;
任何形式的帮助将不胜感激。