微软BI 之SSRS 系列 - 巧用 RunningValue 函数在分组中排序并设置 RANK 排名

时间:2022-11-16 19:56:09

开篇介绍

经常有像类似于这样的排序需求,以及设置分组下的排序序号。比如此图中要求城市 City 在省份下按照 Internet Sales Amount 总销售额进行排序,并标识在各省份下的排名。

微软BI 之SSRS 系列 - 巧用 RunningValue 函数在分组中排序并设置 RANK 排名

实现过程

先把分组做好,然后添加新的一列 Rank。

微软BI 之SSRS 系列 - 巧用 RunningValue 函数在分组中排序并设置 RANK 排名

在 City 分组的 Group Properties 中,它的排序是按照 SUM 聚合 Internet Sales Amount 来排序的。

微软BI 之SSRS 系列 - 巧用 RunningValue 函数在分组中排序并设置 RANK 排名

在 Rank 位于 City 一行的表达式中使用 RunningValue 函数。

微软BI 之SSRS 系列 - 巧用 RunningValue 函数在分组中排序并设置 RANK 排名

下面表达式的作用是在指定的 StateProvince 组下,计算去重之后 City 的数量,那么第一行就是 1,第二行累加就变成 1+1 = 2 了,这样就实现了排序 RANK NO。

微软BI 之SSRS 系列 - 巧用 RunningValue 函数在分组中排序并设置 RANK 排名

关于 RunningValue 函数的使用可以参考:https://msdn.microsoft.com/zh-cn/library/dd255229.aspx

返回在给定作用域中计算的、由表达式指定的所有非 Null 数值的运行聚合。RunningValue(expression, function, scope)

在本示例中,可以将 Scope 变成 Nothing, 或者 Country 来看看不同作用域下 RunningValue 的变化情况。

更多 BI 文章请参看 BI 系列随笔列表 (SSIS, SSRS, SSAS, MDX, SQL Server)  如果觉得这篇文章看了对您有帮助,请帮助推荐,以方便他人在 BIWORK 博客推荐栏中快速看到这些文章。