以下是一个在SQL Server中按年代按连续的十年进行排名的解决方法的代码示例:
;WITH CTE AS (
SELECT
Year,
ROW_NUMBER() OVER (PARTITION BY Decade ORDER BY Year) AS Rank
FROM (
SELECT
Year,
(Year - 1) / 10 * 10 AS Decade
FROM YourTable
) AS T
)
SELECT
Year,
Decade,
Rank
FROM CTE
WHERE Rank <= N
ORDER BY Decade, Rank;
在这个示例中,假设你的表名为"YourTable",包含一个年份列"Year"。首先,我们使用子查询计算每个年份所属的十年代,并将其存储在CTE(公共表表达式)中。然后,我们使用ROW_NUMBER()函数按照年份对每个十年代进行排名。
最后,我们从CTE中选择排名前N个记录,并按十年代和排名进行排序。
请注意,你需要将"YourTable"替换为你实际使用的表名,并根据需要调整查询中的列名和N的值。
上一篇:按年代划分的堆叠柱状图