我有一个包含以下内容的数据表:
User,Platform,Dt,Activity_Flag,Total_Purchases
1,iOS,05/05/2016,1,1
1,Android,05/05/2016,1,2
2,iOS,05/05/2016,1,0
2,Android,05/05/2016,1,2
3,iOS,05/05/2016,1,1
3,Android,06/05/2016,1,3
1,iOS,06/05/2016,1,2
4,Android,06/05/2016,1,2
1,Android,06/05/2016,1,0
3,iOS,07/05/2016,1,2
2,iOS,08/05/2016,1,0
我想做一个 GROUPING SETS (Platform,Dt,(Platform,Dt),()) 聚合,以便能够为 Platform 和 Dt 的每个组合找到以下内容:
- 总购买量
- 唯一用户总数
- 每位用户每天的平均购买量
前两个很简单,因为它们可以分别通过 sum(Total_Purchases) 和 count(distinct user) 来实现。
我遇到的问题是最后一个指标。结果集应如下所示,但我不知道如何正确计算最后一列:
Platform,Dt,Total_Purchases,Total_Unique_Users,Average_Purchases_Per_User_Per_Day
Android,05/05/2016,4,2,2.0
iOS,05/05/2016,2,3,0.7
Android,06/05/2016,5,3,1.7
iOS,06/05/2016,2,1,2.0
iOS,07/05/2016,2,1,2.0
iOS,08/05/2016,0,1,0.0
,05/05/2016,6,3,2.0
,06/05/2016,7,3,2.3
,07/05/2016,1,1,1.0
,08/05/2016,1,1,1.0
Android,,9,4,1.8
iOS,,6,3,1.2
,,15,4,1.6
对于前十行,我们看到获得每位用户每天的平均购买量是前两列的简单划分,因为这些行中的维度仅代表一个日期。但是当我们查看最后 3 行时,我们发现除法并不是达到预期结果的方法。这是因为它需要依次取每天的平均值才能获得每天的总金额。
如果不清楚,请告诉我,我很乐意解释得更好。这是我在这个网站上的第一篇文章!