QuickBI如何实现不同查询条件关联同一个图表的不同字段

产品名称

QuickBI

产品模块

数据集

概述

本文通过举例方式,演示如何灵活构建数据集,解决部分复杂使用场景

问题描述

如何实现同一个查询条件的不同查询值,分别查询同一个图表里的不同字段。比如想用一个交叉表展示两个省份的订单数,然后计算两个省份的订单数差值,两个省份可以通过查询条件随意选择

解决方案

您可以通过参数SQL构建数据集实现该场景,只要把查询条件A和查询条件B分别作为两个子查询的参数,然后每个子查询分别查询字段A和字段B即可,最后把求得的结果及差值展示出来即可,可参考如下SQL:

select a.provinceA_order_num,
b.provinceB_order_num,
a.provinceA_order_num-b.provinceB_order_num as order_num_diff
from(
select count(distinct order_id) provinceA_order_num
from company_sales_record_copy
where ${province:provinceA}
)a
left join(
select count(distinct order_id) provinceB_order_num
from company_sales_record_copy
where ${province:provinceB}
) b on 1=1

SQL写好后,设置好参数,然后保存即可

接下来搭建仪表板,只需把这三个字段添加到交叉表(或者其他组件,比如指标看板)中,然后添加查询条件,两个条件分别关联该数据集的两个参数字段,选项值来源可以从其他带有省份字段的数据集里取(建议单独建一个省份维表,然后引用维表建的数据集,这样查询会更快一些)

任意选择某两个省份后,点击查询条件的查询按钮,然后可以看到生成的SQL如下(交叉表右上角有三个点,点击后里面可以看到查看SQL字样),说明配置成功:

更多信息

如果您不了解参数SQL如何运用,以及如何书写规范的参数SQL,可以参考文档:https://help.aliyun.com/knowledge_detail/273069.html

相关文档