繁体   English   中英

sql sum group by multiple columns

[英]sql sum group by multiple columns

我正在努力为游戏锦标赛打分。 有多个锦标赛,每个队有两个球员,球员1和球员2。 注册时,任一玩家可以在player1或Player2位置。 我需要总结一下,当同一个两个球员组合在一起时,比赛中获得的积分。

Tournament_ID|Player1|Player2|Points
------------------------------------
1            |Smith  |Green  |8
1            |Brown  |Peck   |3
1            |Jones  |Healy  |2

2            |Smith  |Green  |5
2            |Peck   |Brown  |3
2            |Jones  |Healy  |1

3            |Healy  |Jones  |9
3            |Smith  |Green  |5
3            |Peck   |Brown  |3

结果应如下所示:

Place  Team              Total Points
1      Smith & Green        18
2      Jones & Healy        12
3      Brown & Peck          9

这是一种方式:

WITH cte AS (
    SELECT
        CASE WHEN Player1 < Player2 THEN Player1 ELSE Player2 END AS Player1,
        CASE WHEN Player1 < Player2 THEN Player2 ELSE Player1 END AS Player2,
        Points
    FROM yourTable
)

SELECT
    ROW_NUMBER() OVER (ORDER BY SUM(Points) DESC) Place,
    Player1 + ' & ' + Player2,
    SUM(Points) AS [Total Points]
FROM cte
GROUP BY
    Player1 + ' & ' + Player2;

在此输入图像描述

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM