先简单交代一下背景——这个系列文章里的案例,都来自用户在实际使用中遇到的真实问题。我们把那些高频误区和小技巧整理出来,希望能帮你更顺畅地用Quick BI解决业务需求。
问题背景
一家大型连锁零售企业,想做一张“年度全国各区域销售额总排行榜”。管理层的需求很明确:通过“区域”查询控件筛选出几个区域(比如华南区和华北区),就能立刻看到它们在全国榜单里的真实名次——华南和华北可能是第2和第3名。但问题在于,如果直接用排行榜自带序号,一旦筛选,图表只显示被选中的区域,排名就会重置为1、2——这就没法反映它们在全国的真实位置了。
核心痛点
Quick BI排行榜图表样式中自带的序号,在筛选后会重新计算排名。你选了“华南”和“华北”,图表就只剩这两个区域,排名自然变成第1、第2,而不是它们在全国的真实位次。管理层要的是“在全国排第几”,不是“在筛选列表里排第几”。
解决方案
排行榜的本质,是展示指标在一个维度下的排名顺序,通常用Top N降序排列。要解决筛选后排名重置的问题,思路其实很简单:在数据准备阶段,提前用SQL的开窗函数RANK()算出每个区域基于总销售额的固定排名。把这个排名作为一个字段存进数据集,前端无论怎么筛选,这个“全国总排名”的值都不会变——它本身就是原始排序的静态快照。下面说说具体操作。
Step1. 确认数据表结构
假设数据库中有一张表 company_sales,主要字段有:
area:区域名称order_amt:订单金额
Step2. 创建自定义SQL数据集
1. 在Quick BI中选择对应的数据源。
2. 点击右侧「SQL 创建数据集」按钮。

3. 输入以下自定义SQL(以MySQL数据库为例):
SELECT
a.area,
a.销售额,
RANK() OVER (
ORDER BY
a.销售额 DESC
) AS 排名
FROM
(
SELECT
area,
SUM(order_amt) AS 销售额
FROM
company_sales
GROUP BY
area
) a
4. 点击「确认编辑」→ 关闭窗口 → 保存数据集。
注意关闭自定义SQL页面时,要点击右上角×,确认SQL编辑已完成。
5. 点击「保存」按钮保存数据集。

Step3. 配置排行榜字段
1. 点击「创建仪表板」,添加排行榜组件。
2. 排行榜默认会开启序号,需要在样式中将序号关闭,因为我们要用自己计算好的“排名”字段。

3. 排行榜字段配置如下:
- 行(维度):选择
area - 主指标/度量:选择
销售额 - 副指标/度量:选择
排名

Step4. 添加图表内查询控件
1. 点击排行榜右上角三个点,选择菜单「插入查询条件」。


2. 添加查询条件,关联字段选择 area;选项值来源选择“单个数据集”;查询字段和显示字段都选择 area。

Step5. 最终效果
排行榜会展示各区域的完整销售额及固定排名:

用图表内的查询控件筛选“华南”和“华北”区域后,可以看到对应的全国销售额排名分别是第2和第3名——排名没有被重置,完美保留了全局顺序。


