您可以尝试以下查询。这里的RoundScore 是玩家每轮Tournament 的SUM。
SELECT *,(RoundScore * -3) AS FinalScore
FROM (
SELECT player_id,
full_name,
[year] ,
tournament_id,
[round],
round_score,
Sum(round_score) OVER(PARTITION BY player_id,tournament_id ORDER BY player_id) AS RoundScore
FROM v_temptable6
) T
ORDER BY [year],
tournament_id,
full_name,
[round]
示例示例
DECLARE @TABLE TABLE(Player_Id VARCHAR(100), Full_Name VARCHAR(100), [Year] INT, tournament_id INT, Round int, Round_Score INT)
INSERT INTO @TABLE
SELECT 'C3CCE201-9176-4910-9916-253FCFBE7899','AB',2013,1,1,3
INSERT INTO @TABLE
SELECT 'C3CCE201-9176-4910-9916-253FCFBE7899','AB',2013,1,2,3
INSERT INTO @TABLE
SELECT '51FB1D63-C925-4E69-B89B-2566271A8C8C','AC',2013,1,1,7
INSERT INTO @TABLE
SELECT '51FB1D63-C925-4E69-B89B-2566271A8C8C','AC',2013,1,2,5
INSERT INTO @TABLE
SELECT 'EE6036AF-3C74-4F34-94CE-7695473ADB04','BC',2013,1,1,-2
INSERT INTO @TABLE
SELECT 'EE6036AF-3C74-4F34-94CE-7695473ADB04','BC',2013,1,2,2
INSERT INTO @TABLE
SELECT 'EE6036AF-3C74-4F34-94CE-7695473ADB04','BC',2013,1,3,-1
INSERT INTO @TABLE
SELECT 'EE6036AF-3C74-4F34-94CE-7695473ADB04','BC',2013,1,4,7
SELECT *,(RoundScore * -3) AS FinalScore
FROM (
SELECT player_id,
full_name,
[year] ,
tournament_id,
[round],
round_score,
Sum(round_score) OVER(PARTITION BY player_id,tournament_id ORDER BY player_id) AS RoundScore
FROM @TABLE
) T
ORDER BY [year],
tournament_id,
full_name
输出:
+--------------------------------------+-----------+------+---------------+-------+-------------+------------+------------+
| player_id | full_name | year | tournament_id | round | round_score | RoundScore | FinalScore |
+--------------------------------------+-----------+------+---------------+-------+-------------+------------+------------+
| C3CCE201-9176-4910-9916-253FCFBE7899 | AB | 2013 | 1 | 1 | 3 | 6 | -18 |
+--------------------------------------+-----------+------+---------------+-------+-------------+------------+------------+
| C3CCE201-9176-4910-9916-253FCFBE7899 | AB | 2013 | 1 | 2 | 3 | 6 | -18 |
+--------------------------------------+-----------+------+---------------+-------+-------------+------------+------------+
| 51FB1D63-C925-4E69-B89B-2566271A8C8C | AC | 2013 | 1 | 1 | 7 | 12 | -36 |
+--------------------------------------+-----------+------+---------------+-------+-------------+------------+------------+
| 51FB1D63-C925-4E69-B89B-2566271A8C8C | AC | 2013 | 1 | 2 | 5 | 12 | -36 |
+--------------------------------------+-----------+------+---------------+-------+-------------+------------+------------+
| EE6036AF-3C74-4F34-94CE-7695473ADB04 | BC | 2013 | 1 | 1 | -2 | 6 | -18 |
+--------------------------------------+-----------+------+---------------+-------+-------------+------------+------------+
| EE6036AF-3C74-4F34-94CE-7695473ADB04 | BC | 2013 | 1 | 2 | 2 | 6 | -18 |
+--------------------------------------+-----------+------+---------------+-------+-------------+------------+------------+
| EE6036AF-3C74-4F34-94CE-7695473ADB04 | BC | 2013 | 1 | 3 | -1 | 6 | -18 |
+--------------------------------------+-----------+------+---------------+-------+-------------+------------+------------+
| EE6036AF-3C74-4F34-94CE-7695473ADB04 | BC | 2013 | 1 | 4 | 7 | 6 | -18 |
+--------------------------------------+-----------+------+---------------+-------+-------------+------------+------------+