[英]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.