0

我正在评估 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

有没有办法使用之前定义的同一张表来计算最后一份报告?

4

1 回答 1

1

您尝试计算的指标可以表示为sum(balance)/count(distinct date):每日总余额除以总天数。然后你会group by week产生你的平均余额。

首先,在您的表上创建一个新指标。将 SQL 表达式更新为sum(balance)/count(distinct date).

其次,确保您的week列已被标记Groupable。另一种方法是date在创建 Slice 并设置Time Grain为时使用该列week

于 2018-02-26T23:48:43.783 回答