根据其他列的条件对多列求和 - SQL Teradata

Sum multiple columns based on criteria from other columns - SQL Teradata

我想从下面显示的 table 中的第 1 列和第 2 列中的每个县获得第 3 列和第 4 列的总分:

County1    |    County2     |   Player1_Score   |   Player2_Score
Norfolk    |    Hampshire   |       5           |       7
Suffolk    |    Norfolk     |       10          |       6
Hampshire  |    Suffolk     |       16          |       12
Norfolk    |    Suffolk     |       78          |       50
Hampshire  |    Norfolk     |       4           |       8
Suffolk    |    Hampshire   |       9           |       19

所以我希望看到的结果如下:

Norfolk     |       97
Suffolk     |       77
Hampshire   |       32

有人可以帮忙吗?我尝试了 SELECT/GROUP BY 查询,但对 SQL 还很陌生,无法获得我想要的结果。

非常感谢

试试这个:

SELECT County, SUM(Score) AS TotalScore
FROM (                   
  SELECT County1 AS County, Player1_Score AS Score
  FROM mytable

  UNION ALL

  SELECT County2, Player2_Score
  FROM mytable) AS t
GROUP BY County
ORDER BY TotalScore DESC

Demo here

SEL CNTRY,SUM(SUM1) FROM
(
SEL COUNTRY1 AS CNTRY, SUM(player_score_1) AS SUM1 FROM VT1
GROUP BY 1
UNION 
SEL COUNTRY2 AS CNTRY, SUM(player_score_2) FROM VT1
GROUP BY 1
) A
GROUP BY 1