我正在评估 Superset,我想尝试了解它是否可能以及如何在同一组数据上获得不同级别的聚合。我正在处理银行账户。我正在拍摄帐户余额的每日快照,因此我有一个具有以下结构的表(非常简化):
account_id date balance week
1 2018-01-01 $5.00 1
1 2018-01-02 $10.00 1
1 2018-01-03 $10.00 1
1 2018-01-04 $10.00 1
1 2018-01-05 $10.00 1
1 2018-01-06 $10.00 1
1 2018-01-07 $10.00 2
1 2018-01-08 $10.00 2
1 2018-01-09 $10.00 2
1 2018-01-10 $10.00 2
1 2018-01-11 $20.00 2
1 2018-01-12 $20.00 2
1 2018-01-13 $20.00 2
1 2018-01-14 $20.00 3
2 2018-01-09 $70.00 2
2 2018-01-10 $70.00 2
2 2018-01-11 $70.00 2
2 2018-01-12 $70.00 2
2 2018-01-13 $5.00 2
2 2018-01-14 $5.00 3
首先,我需要计算每天的总余额。这很简单。我可以使用日期作为时间列和余额的度量SUM来构建一个切片。使用上面的示例数据,结果必须是:
date total balance week
2018-01-01 $5.00 1
2018-01-02 $10.00 1
2018-01-03 $10.00 1
2018-01-04 $10.00 1
2018-01-05 $10.00 1
2018-01-06 $10.00 1
2018-01-07 $10.00 2
2018-01-08 $10.00 2
2018-01-09 $80.00 2
2018-01-10 $80.00 2
2018-01-11 $90.00 2
2018-01-12 $90.00 2
2018-01-13 $25.00 2
2018-01-14 $25.00 3
然后我需要计算每个账户的每周平均余额。这也很容易,因为我可以使用AVG作为指标:
week average_balance_per_account
1 $9.17
2 $32.08
3 $12.50
但在那之后,我想计算每周的平均总余额。这是每日总余额的平均值。在这个例子中:
week average_balance expression
1 $9.17 = (5+10+10+10+10+10)/6
2 $55.00 = (10+10+(10+70)+(10+70)+(20+70)+(20+70)+(20+5))/7
3 $25.00 = ((20+5))/1
有没有办法使用之前定义的同一张表来计算最后一份报告?