我有[YEAR],[WEEKNO],[VERSIONNO] cols(和其他人)的数据表。
我希望每年为每个WEEKNO输出最新n个VERSIONNO的整行(每列)。
在SQL中执行此操作的最佳方式是什么?
答案 0 :(得分:2)
您可以使用row_number()
:
select t.*
from (select t.*,
row_number() over (partition by year, weekno order by versionno desc) as seqnum
from t
) t
where seqnum <= n -- Your value goes here
row_number()
是大多数数据库支持的ANSI标准功能。