1 概述
在图表组件中,若对多个字段都设置排序,且这些字段的排序会影响同一区域范围内的数据时,便会产生排序优先级的概念,本文主要介绍各场景下多字段都设置排序的生效逻辑。
关于 排序设置及操作入口 的具体说明详见:新数据排序逻辑,本文不再详细介绍。
2 全局和组内的影响范围
我们先来了解下 单个字段 上设置全局排序和组内排序的影响效果,有助于理解后面多字段排序混合使用的场景。
2.1 组内排序
组内排序指对最小的分组维内数据进行排序。由于排序范围前提是要先有分组,所以当某个字段设置了组内排序后,会影响其分组字段的顺序,表示按照什么顺序进行分组。
1、若在 度量字段 上设置组内排序,则其前面未排序的维度字段都按此度量排序。
比如下图想要按 销售量组内升序,看哪些地区、哪些年份销售量少。在销售量字段上设置组内升序,销售量的分组包含维度含发货区域、省份和年份,所以实际排序过程如下:
- 发货区域 字段本身先按 销售量 的值进行组内升序排序,下图红色框内数值代表对应发货区域的销售量,展示的结果是按照销售量从小到大顺序展示。
- 省份 字段再按 销售量 的值进行组内升序排序,下图黄色框内数值代表在华南区域下,各省份的销售量,展示的结果是按照销售量从小到大顺序展示。
- 年份 字段最后按 销售量 的值进行组内升序排序,下图蓝色框内数值代表各省份不同年份的销售量,展示的结果是按照销售量从小到大顺序展示。
图中的小计行、颜色框都是用于直观对比排序结果,不显示小计合计时,也是会按上面所描述的逻辑展示各维成员的顺序。
2、若在维度字段上设置组内排序,则其前面未排序的维度字段都按当前字段值排序,且采用设置排序的维度字段的升降序设置。
比如下图想要按 年份组内降序,看各区域和省份的销售情况。在年份字段上设置组内降序,年份的分组包含维度含发货区域和省份,所以实际排序过程如下:
- 发货区域 字段本身先按 自身的值 进行组内降序排序,下图红色框内是发货区域自身组内降序排序结果。
- 省份 字段再按 自身的值 进行组内降序排序,下图黄色框内是在西南区域下,省份自身组内降序排序结果。
- 年份 字段最后按 自身的值 进行组内降序排序,下图蓝色框内是某个省份下,年份自身组内降序排序结果。
基于字符串字段排序时,是按照字符集顺序排,不同的数据库类型的字符集排序结果可能会不一样。
2.2 全局排序
全局排序指不受当前分组结构限制,排序结果影响整个所有数据。不同于组内排序,全局排序是只排当前字段,其他字段不会有额外的排序设置影响,直接按从数据层返回的顺序展示。
比如下图想要按 产品类别全局升序,看各区域不同年份的销售情况。在产品类别字段上设置全局升序,此时产品类别按照从小到大进行排序,其他字段按照数据层返回结果展示。
3 多字段排序优先级
3.1 影响的行列区域范围
1、明细表和汇总表,在字段上设置的排序都是影响行上的数据顺序。
2、交叉表和树状表维度字段的排序
- 红框内行区上的维度字段排序,影响行上的数据顺序
- 黄框内列区上的维度字段排序,影响列上的数据顺序
3、交叉表和树状表维成员或度量名称上的排序
- 交叉表和树状表数据面板的度量区的字段上无排序入口,因为这两个组件需 维成员+度量字段 才能组合唯一的一行或一列,所以排序入口只支持表头排序,且表头路径上必须含度量字段。
- 且不管行区还是列区,只有在叶子节点上才有排序入口,其他层级无排序入口,下图以度量名称放在列区为例:
- 当度量名称放在列区时,影响行上的数据顺序
- 当度量名称放在行区时,影响列上的数据顺序(2025年05月及以后的V11版本,树状表才支持将度量名称放在行区)
3.2 优先级生效原则
在查看全
3.2 降序的情况
降序和升序的场
3 注意事项
1、本文的自定义排序功能仅支持2025-04-01之后的V11版本,且仅支持汇总表、交叉表和树状表组件。
2、仅维度字段支持自定义排序。
3、最多只能设置100行数据的自定义顺序,更多数据量的场景不建议使用自定义排序功能。
4、“其他”表示未显示出来的其他数据,这些数据的顺序按数据层返回的结果展示,当前字段的排序设置对他们不生效。