在帆软FineBI中,如果你有一组数据需要按某个数值字段进行升序排序并显示连续排名,你可以使用FineBI提供的排名函数来实现这一需求。具体来说,你可以使用RANK()函数或DENSE_RANK()函数。以下是具体的操作步骤和公式写法:
使用RANK()函数
RANK()函数会为相同数值的项分配相同的排名,但后续的排名会跳过。例如,如果有两个数值相同的项排在第1名,那么下一个数值不同的项将排在第3名。
公式写法:
sql
复制代码
RANK() OVER (ORDER BY ${取数值} ASC) AS 连续排名
使用DENSE_RANK()函数
DENSE_RANK()函数与RANK()类似,但它不会跳过后续的排名。例如,如果有两个数值相同的项排在第1名,那么下一个数值不同的项将排在第2名。
公式写法:
sql
复制代码
DENSE_RANK() OVER (ORDER BY ${取数值} ASC) AS 连续排名
在FineBI中设置步骤
打开FineBI设计器:登录FineBI设计器,并打开你需要编辑的仪表板或数据集。
编辑数据集:选择你需要排序并添加排名的数据集,点击编辑。
添加计算字段:在数据集编辑界面,点击“添加计算字段”。
输入公式:在计算字段的公式框中输入上述的RANK()或DENSE_RANK()公式。例如:
sql
复制代码
DENSE_RANK() OVER (ORDER BY [你的数值字段名] ASC) AS 连续排名
注意:将[你的数值字段名]替换为你实际的数值字段名,如果使用了FineBI的变量${取数值},则直接使用${取数值}。
保存并应用:保存计算字段并应用更改。
查看结果:在仪表板中查看修改后的数据集,你应该能看到按指定数值字段升序排序后的连续排名。
示例
假设你的数值字段名为销售额,那么公式将写成:
sql
复制代码
DENSE_RANK() OVER (ORDER BY 销售额 ASC) AS 连续排名
或者,如果你使用FineBI的变量:
sql
复制代码
DENSE_RANK() OVER (ORDER BY ${销售额} ASC) AS 连续排名
通过以上步骤,你就可以在FineBI中实现按数值字段升序排序并显示连续排名的需求。