数据排序

最近更新时间:2024-12-05 14:05:22

我的收藏

在数据分析时,编辑端的排序决定了数据计算的对象范围;用户在访问时,可通过排序快速获取重点信息的罗列展示。

排序功能分为编辑端排序(制作报表时进行排序)、浏览端排序(用户访问时进行排序),且不同的组件对排序的支持也略有不同。

本文介绍以下操作:
不排序
升/降序
按其他字段排序
自定义排序
全局排序
以及以下相关操作说明:
浏览端排序说明
移动端排序说明
不同组件使用说明

示例底表数据:
商品名称
渠道商
销量
商品A
渠道A
60
商品A
渠道B
100
商品B
渠道C
200
商品A
渠道C
120
商品B
渠道B
100
商品C
渠道E
50
商品B
渠道D
30
商品A
渠道D
80
* 示例中,都以明细表为例,其他组件略有差异,详见《不同组件使用说明》部分。


不排序

选择不排序表示排序规则按照数据库的自然排序处理,默认所有字段为“不排序”。


升/降序

通过升降序,可以快速对当前字段进行升降序操作,如示例表,对“商品名称”升降序,相当于 sql 中的 ORDER BY 商品名称。
1. 创建一个明细表,引用示例底表,并设置好数据列信息;



2. 在“商品名称”字段上依次选择“排序” > “升序”;



3. 查看结果,已按照“商品名称”进行了升序排列了(文本类型排序以 ASCII 编码排序);



4. 如需查看哪些商品销量好,可按照销量进行倒序排列,在“销量”字段上选择“排序” > “降序”;



5. 查看结果,已按照“销量”进行了倒序排列了。



注意:
在实际查询执行中,排序会转化为 ORDER BY 执行,所以,不同的排序可能导致查询结果的不一致;
如上例,如果结果展示行数为2,则按照销量倒序后,过滤的维值为“商品B-渠道C、商品A-渠道C”,汇总结果为 200+120=220; 如按照销量升序后,过滤的维值为“商品B-渠道D、商品C-渠道E”,汇总结果为 30+50 = 80


按其他字段排序

按字段排序主要有两个使用场景:
多个维度字段需要按照一个指标进行排序:如 “部门”按照“收入”进行倒序排,“部门”下面的“小组”按照“收入”进行升序排;
展示排序字段不适合按照自身进行排序:如文本月份,按照自身排序,就会出现 4月(April)排在1月(January)前,这个时候可以通过增加个计算字段映射“英文月份”和“数字月份”字段(如April映射成4),然后“英文月份”按照“数字月份”升序,最终得到合适的排序。

1. 创建一个明细表,引用示例底表,并设置好数据列信息;


2. 在“商品名称”字段上依次选择“排序” > “按字段降序” > “销量”;


3. 查看结果,“商品名称”列已按照“销量”进行了倒序排列了(此时效果等同于只有销量降序);


4. 此时,我们希望对同样销量的商品,“渠道商”可以按照“商品名称”进行降序排,则可以对“渠道商”字段进行按字段降序;


5. 查看结果,对比前后差异,发现在同样的销量时,“商品名称A” 已经 排到了 “商品名称B”下面了。



自定义排序

对于维度字段,支持对维值进行强制排序,如周一~周日的排序,实际场景我们希望可以按照周一到周日进行排序,则可以通过自定义排序的方式实现。

假设,我们要对“渠道商”,强制按照“渠道商A > 渠道商C > 渠道商D > 渠道商B > 渠道商E”,以下展示操作过程:
1. 编辑组件,在“渠道商”字段上依次选择 “排序” >“自定义排序”;


2. 在自定义排序设置弹层里,可拖动渠道商名称进行排序;



3. 当你的数据较多时,不便于拖拽排序,也可以使用输入排序的方式,直接输入文本来进行排序。


输入排序时,不需要把全部维值给输入,没有输入的值,会按照自然排序;
如需优先显示输入的值,剩下的值按照自然排序(即不排序),则可以勾选“以上值优先排序”;
如需最后才显示输入的值,剩下的值按照自然排序(即不排序),则可以勾选“以上值最后排序”;
输入排序时,如果用户输入了不存在的维值,依然可以继续提交(因为提交的维值可能在其他场景下存在或者在未来记录可能产生);
输入排序时,最多可对1000条记录进行拖拽排序;
时间字段不支持自定义排序。


全局排序

当有多个维度字段时,默认是按照字段的位置进行优先级排序的,如示例,如果都有设置排序,那么排序会优先“商品名称”,如果“商品名称”相同,则会再按“渠道商”字段排序,以此类推;

但,我们还有一种场景,同样的表格,我们希望优先按照“渠道商”进行排序,然后再按照“商品名称”排序,这个顺序和字段的位置顺序不是一致的,这时候就需要使用到全局排序功能,全局排序决定了排序依据字段的优先级。

1. 编辑组件,在任一字段上依次选择 “排序” > “全局排序”;


2. 拖动排序字段,调整优先级(你也可以在这里重新设置字段的排序规则);


3. 我们看到优先对“供应商”字段进行排序,排完后,再对“商品名称”进行排序,排序依据为按照销量的升序,最终效果:




浏览端排序说明

在编辑侧完成初始排序后,对于访问者,也可以在浏览端根据需求进行排序。
此处浏览端指访问数据看板、分享页面或嵌出页面等(因移动端有其特殊性,所以这里不含移动端,移动端单列说明)。

下面以访问数据看板为例说明其操作:
1. 用户进入控制台 > 项目 > 数据看板 ,访问页面;


2. 点击表格类组件的表头,在弹出的排序里选择排序方式;


* 在浏览端,不支持自定义排序、全局排序,仅支持升降序及按字段升降序。
3. 查看结果,已经可以看到浏览端排序发生相应变化。



移动端排序说明

移动端因有其特殊性,无法进行复杂的排序,仅支持根据编辑端设置的规则,切换 不排序、升序、降序。
1. 手机端打开报表,在表格里点击表头切换排序



2. 排序切换仅支持:
升序:如果编辑端没有设置 按其他字段排序,则升序为当前字段升序;如有设置按其他字段排序(如按“收入”字段),则升序指按“收入”升序;
降序:功能同升序,排序方式为降序;
不排序:回到默认排序。



不同组件使用说明

上面的示例都是围绕明细表来展示的,实际上,不同组件对于排序有不一样的处理(当前排序功能仅在表格类里支持,其他图表还在同步支持,相关更新请关注产品动态)。
编辑端/浏览端/移动端
组件
不排序
升降序
按字段升降序
全局排序
自定义排序
编辑端
明细表
支持
支持
支持
支持
支持
表格
支持
支持
支持(指标不支持)
支持
支持(指标不支持)
交叉表
支持
支持
支持(指标不支持)
支持(列维不支持)
支持(指标不支持)
浏览端
明细表
支持
支持
支持
不支持
不支持
表格
支持
支持
支持(指标不支持)
不支持
不支持
交叉表
支持
支持
支持(指标不支持)
不支持
不支持
移动端
明细表
支持
支持
支持
不支持
不支持
表格
支持
支持
支持(指标不支持,根据编辑端配置决定)
不支持
不支持
交叉表
支持
支持
支持(指标不支持,根据编辑端配置决定)
不支持
不支持