, mssql
DECLARE @t table(Unique_ID int, Group_ID int, New_ID int)
INSERT @t (unique_id, group_id)
SELECT 1, 1123 UNION ALL SELECT 2, 1123 UNION ALL SELECT 3, 1124 UNION ALL SELECT 4, 1125 UNION ALL SELECT 5, 1125 UNION ALL SELECT 6, 1125 UNION ALL SELECT 7, 1125
UPDATE t
SET new_id =
(SELECT count(*)
FROM @t
WHERE t.unique_id >= unique_id and t.group_id = group_id
GROUP BY group_id)
FROM @t t
SELECT * FROM @t
Unique_ID Group_ID New_ID
1 1123 1
2 1123 2
3 1124 1
4 1125 1
5 1125 2
6 1125 3
7 1125 4