栏目说明[魔法棒挥动]
「Quick BI使用案例」系列短文都来源于用户遇到的真实问题。
文章聚焦使用过程中的高频误区与使用技巧,希望能帮助您更充分地发挥产品价值。
问题背景[问号]
在日常经营分析中,业务人员常需快速评估各区域订单金额在两个自定义时间段(如“活动期” vs “基准期”)之间的变化情况,以便及时调整策略。
核心需求如下:
- 支持在报表界面自主选择两个日期区间(精确到天);
- 实时计算各区域在两个时段的订单金额及其比值;
- 查询响应速度达秒级,并以可视化图表直观呈现结果。
解决方案[进度: 未开始]
通过 自定义 SQL 数据集 + 占位符参数,可在 Quick BI 中实现上述灵活、高效的双时段对比分析。以下以 MySQL 8 数据库为例说明操作步骤。
前提条件
数据库中存在表 company_sales,关键字段包括:
area:区域名称order_amt:订单金额report_date:下单日期(datetime 类型)
完整的表 company_sales结构如下:
Step1. 在该数据源管理页面,点击“SQL创建数据集”按钮:
Step2. 输入以下自定义SQL语句:
SELECT a.area, a.fenzi, b.fenmu, CASE WHEN b.fenmu IS NULL OR b.fenmu = 0 THEN NULL ELSE a.fenzi / b.fenmu END AS ratio FROM ( SELECT area, SUM(order_amt) AS fenzi FROM company_sales WHERE report_date >= '$val{report_date_ph1.get(0)}' AND report_date <= '$val{report_date_ph1.get(1)}' GROUP BY area ) a LEFT JOIN ( SELECT area, SUM(order_amt) AS fenmu FROM company_sales WHERE report_date >= '$val{report_date_ph2.get(0)}' AND report_date <= '$val{report_date_ph2.get(1)}' GROUP BY area ) b ON a.area = b.area
Quick BI中值占位符可通过仪表板上的查询控件传入日期范围,进行筛选。当占位符是日期时,需要选择具体的日期格式,来控制传入值的格式。
占位符具体格式如下:
'$val{占位符名}'
💡 占位符说明
$val{report_date_ph1.get(0)}:获取第一个日期范围控件的起始日期$val{report_date_ph1.get(1)}:获取第一个日期范围控件的结束日期- 同理,
report_date_ph2对应第二个日期范围 - 在 Quick BI 中配置查询控件时,请确保日期格式与数据库一致(如
yyyy-MM-dd)
Step3. 点击右上角“确认编辑”按钮,提示成功后,点击右上角×关闭当前自定义SQL界面。
Step4. 点击数据集右上角“保存”按钮,完成数据集创建。
Step5. 新建仪表板,添加 交叉表 组件,字段配置如下:
- 行:维度字段
area - 列:度量字段
fenzi、fenmu、ratio
Step6.添加两个 日期范围查询控件,分别绑定至占位符 report_date_ph1 和 report_date_ph2。查询条件配置如下:
Step7. 日期查询控件设置默认值或由用户动态选择,例如:
fenzi(分子):2025-10-14 至 2025-10-17 → 表示“活动期”订单金额之和fenmu(分母):2025-10-20 至 2025-11-21 → 表示“基准期”订单金额之和ratio:自动计算两者的比值
小贴士
- 若需支持更多维度(如产品线、渠道),可在子查询中增加 GROUP BY 字段;
- 该模式同样适用于同期对比(如今年 vs 去年同期)、周环比等场景,只需调整日期控件逻辑。
如阅读后有任何问题,您可以点击Quick BI产品内右下角【帮助与反馈】按钮与我们取得联系。