我有一张下表
| 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条答案
按热度按时间gxwragnw1#
我们可以用
UNION ALL
将名称与其对应的得分值合并到一列中。现在,我们可以使用这个结果集作为派生表GROUP BY
上name
去拿那个SUM()
分数。结果
db fiddle视图
0tdrvxhp2#
使用
Union All
分组时:rextester演示