Вместо сброса (потенциально значимой части) значений столбца при удалении вы можете создать представление представления поверх таблицы, которая вычисляет последовательность на лету.
Либо с помощью сортировки поимя пользователя (однако это означает, что последовательность может измениться при обновлении usernmae):
CREATE VIEW myview AS
SELECT
group,
user,
ROW_NUMBER() OVER(PARTITION BY group ORDER BY user) sequence
FROM mytable t
Или еще лучше, с сортировкой на основе исходной последовательности:
CREATE VIEW myview AS
SELECT
group,
user,
ROW_NUMBER() OVER(PARTITION BY group ORDER BY sequence) sequence
FROM mytable t