[英]Sliding window of count distinct users for 12 months
我有一個相當基本的數據集,其中有一個表,其中包含用戶每次與應用程序交互時的時間戳。 活躍用戶被歸類為在過去 12 個月內至少與應用互動過一次的用戶。
我需要制作一個表格,它每天(回溯 n 天)告訴我在前 12 個月期間有多少“活躍”用戶。 我需要在 Amazon Athena 中運行查詢
一個可能的復雜性是一個用戶每天都可以與應用程序交互。 我想知道最好的 window function 可以捕捉到這一點。
數據的格式;
A Opened App 10/04/2020
A Opened App 10/02/2020
A Opened App 05/01/2020
B Opened App 12/03/2020
B Opened App 02/01/2019
B Opened App 20/07/2018
C Opened App 19/04/2019
我需要一個結果表
20/04/2020 2 (A and B)
19/04/2020 2 (A and B)
18/04/2020 3 (all three)
...
04/01/2020 1 (Only C)
...
一種方法是使用range
為 window function 的count(distinct)
:
select distinct date,
count(distinct user) over (order by date range between interval '1 year' preceding and current row) as num_active_users
from t;
並非所有數據庫都支持這種語法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.