SELECT DISTINCT
ID, Version_Number,
DENSE_RANK() OVER (PARTITION BY ID ORDER BY id, version_number DESC) AS Recency
FROM
table
WHERE
ID = '41710288'
以下是我得到的错误结果:
ID Version_Number Recency
------------------------------------
41710288 10 2
41710288 9 1
正确的结果应该是
ID Version_Number Recency
------------------------------------
41710288 10 1
41710288 9 2
[我知道您可能会建议我将顺序从ASC
更改为DESC
。但这不是真正的问题。
我已验证并确认此脚本可正常用于所有其他记录,除了少数具有version_number
10和9的记录。在version_number
为10和9的所有记录中,我都遇到此问题。
您能帮我吗?
version_number()
似乎是一个字符串。尝试转换它:
dense_rank() OVER (PARTITION BY ID
ORDER BY id, TRY_CONVERT(int, version_number) DESC
) AS Recency