Prz*_*min 0 sql sql-server function sql-server-2016
是否可以使用SQL函数获取排序变量的最后一个值FIRST_VALUE
?这是获取最后一个值的方法.
select
[MyVal_Last] = FIRST_VALUE([MyValue]) OVER (PARTITION BY [Category] ORDER BY [MyValue] DESC)
from tbl
Run Code Online (Sandbox Code Playgroud)
是否可以修改它以获得倒数第二个值?
更新.我熟悉不同的方法来获得最后但提到的一个值,即这里的答案是旧的,并且已经长了很长的胡须.我想知道新版本的SQL Server是否可以使用新功能以更优雅的方式完成它.
SELECT
*
FROM
(
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY [Category]
ORDER BY [MyValue] DESC) AS ordinal
FROM
tbl
)
ordered_tbl
WHERE
ordinal = 2
Run Code Online (Sandbox Code Playgroud)