我有一张桌子
| id | p1_name | p1_score | p2_name | p2_score |
------------------------------------------------
| 1 | aaa | 2 | bbb | 3 |
| 1 | ccc | 1 | ddd | 7 |
| 1 | ddd | 5 | aaa | 8 |
我需要的是计算所有玩家的所有分数,并以更简单的形式显示,如:
| name | score |
----------------
| aaa | 10 |
| bbb | 3 |
| ccc | 1 |
| ddd | 12 |
实现此目的的SQL语法是什么?
2 回答
我们可以使用
UNION ALL
将名称与其对应的分数值组合成一列 . 现在,我们可以将此结果集用作派生表,并在name
上使用GROUP BY
并获得分数的SUM()
.Result
View on DB Fiddle
使用
Union All
进行分组:Rextester Demo