创建一组连续的数字,并为堆叠表中的每个系列重置一次

问题描述 投票:1回答:2

我正在尝试创建一个列,用于标识值的顺序,并在堆叠的数据集中重置每个系列。例如,我有;

Analysis    Loss    
1           9994493    
1           8994493    
2           9994493    
2           8994493    
2           7994493

我想创建一个“Order”列,以便它像这样填充。

Analysis    Loss       Order    
1           9994493    1    
1           8994493    2    
2           9994493    1    
2           8994493    2    
2           7994493    3
sql reset
2个回答
0
投票

如果您的dbms支持窗口功能,您可以尝试使用带窗口功能的row_number

SELECT *,row_number() over(partition by Analysis order by Loss desc) Order
FROM T

0
投票

row_number()窗口函数就是这样:

SELECT   analysis,
         loss,
         ROW_NUMBER() OVER (PARTITION BY analysis ORDER BY loss DESC) AS "order"
FROM     mytable
ORDER BY 1, 3
© www.soinside.com 2019 - 2024. All rights reserved.