我希望在我的数据中查找/分配组的连续编号.
如所需输出画面中的<Group Number>
列.我只需要添加2个新的列.Group Number
是每个ID的每个GroupID
的数字.try 了所有的Rank/Row_Numb/Dense无法计算出,我也需要< Rank by ID,GroupID>
,但已经用到row_number
了.
我需要做任何运行值吗?我使用的是SQL Server 2019.
示例代码如下:
/*
SELECT * INTO #t FROM ( --- sample data load select * from #t ---- drop table #t
SELECT '1234' ID, 'American 1' Risk_Name, 1 line, 10 GroupID UNION
SELECT '1234', 'Asian 21', 2, 20 UNION SELECT '1234', 'Asian 24', 3, 20 UNION SELECT '1234', 'Asian 28', 4, 20 union
SELECT '1234', 'Europe 300', 5,30 UNION SELECT '1234', 'Europe 388', 6, 30 union
SELECT '88888', 'American 2', 1, 10 UNION SELECT '88888', 'American 4', 2, 10 UNION SELECT '88888', 'Europe 33', 3,30 )a
*/
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY ID, GROUPID ORDER BY line) RankByID_GroupID
-- ,DENSE_RANK() OVER (PARTITION BY GROUPID, ID ORDER BY line) GroupNumber--????
FROM
#t
ID Risk_Name line GroupID
------------------------------------
1234 American 1 1 10
1234 Asian 21 2 20
1234 Asian 24 3 20
1234 Asian 28 4 20
1234 Europe 300 5 30
1234 Europe 388 6 30
88888 American 2 1 10
88888 American 4 2 10
88888 Europe 33 3 30
这是所需的输出: