如何在QuickSight中实现按昨日、MTD、YTD维度构建业务统计看板
QuickSight 交叉表看板实现步骤
1. 前置准备:创建时间周期分类字段
首先在你的数据集里新增计算字段,命名为time_period,公式如下:
ifelse( # 匹配昨日数据,按自然日计算避免时间戳误差 dateDiff(sanction_date, truncDate("DD", now()), "DD") = 1, "Yesterday_sanction_date", # 匹配当月1日至昨日的MTD数据 sanction_date >= truncDate("MM", now()) AND sanction_date < truncDate("DD", now()), "MTD", # 匹配当年1月1日至昨日的YTD数据 sanction_date >= truncDate("YYYY", now()) AND sanction_date < truncDate("DD", now()), "YTD", # 不在范围内的数据标记为空后续过滤 NULL )
如果你需要统计包含当日的实时数据,把上述公式里的
AND sanction_date < truncDate("DD", now())条件删除即可;如果业务时区和QuickSight默认时区不一致,记得先在数据集设置中调整时区匹配业务规则。
2. 配置透视表组件
选择「透视表」可视化类型,按如下规则拖入字段:
- 行维度:将
product字段拖入「行」区域,即你需要的产品分类行维度 - 列维度:将刚创建的
time_period字段拖入「列」区域 - 指标值:依次拖入两个指标到「值」区域:
- 对
loanid字段聚合方式选「计数」,重命名为Count_LoanID - 对
sanction_amount字段聚合方式选「平均值」,重命名为AvgSanctionAmt
- 对
- 格式调整:在透视表设置项中开启「值分组为列」,系统会自动将两个指标嵌套在对应时间周期列下,完全匹配你要的展示格式。
3. 可选优化
你可以在透视表的过滤器中添加time_period 不为 NULL的过滤规则,直接排除不属于三个时间范围的无效数据,避免出现空列。
内容的提问来源于stack exchange,提问作者user12444584
相关产品推荐
相关产品推荐

