Я могу получить ваш второй вывод, используя временную таблицу и проход обновления:
DECLARE @Data TABLE
(
ID INT IDENTITY(1,1) PRIMARY KEY
,Value VARCHAR(5)
,Number INT
,Total INT
)
INSERT INTO @Data (Value, Number) VALUES ('A',2)
INSERT INTO @Data (Value, Number) VALUES ('A',3)
INSERT INTO @Data (Value, Number) VALUES ('A',3)
INSERT INTO @Data (Value, Number) VALUES ('B',4)
INSERT INTO @Data (Value, Number) VALUES ('B',4)
INSERT INTO @Data (Value, Number) VALUES ('B',5)
INSERT INTO @Data (Value, Number) VALUES ('C',1)
DECLARE
@Value VARCHAR(5)
,@Count INT
UPDATE @Data
SET
@Count = Total = CASE WHEN Value = @Value THEN Number + @Count ELSE Number END
,@Value = Value
FROM @Data AS D
SELECT
Value
,Number
,Total
FROM @Data
Возможно, есть лучшие способы, но это должно сработать.