不同行的SQL SUM()

Lee*_*ice 0 mysql sql sum

我有一个看起来像这样的表:

+------+----------+----------+--------+
|  id  |  team    |   match  |  score |
+------+----------+----------+--------+
|  1   |     1    |    1     |  10    |
|  2   |     2    |    1     |  5     |
|  3   |     1    |    1     |  5     |
|  4   |     1    |    2     |   6    |
|  5   |     2    |    1     |   4    |
+------+----------+----------+--------+
Run Code Online (Sandbox Code Playgroud)

我需要计算SUM()每个匹配和团队的所有分数,我知道如何计算总和...

SELECT SUM(score) AS team_a_score WHERE `match`='1'
Run Code Online (Sandbox Code Playgroud)

我希望这样的事......

+----------------+
| team_a_score   |
+----------------+
|    24          |
+----------------+
Run Code Online (Sandbox Code Playgroud)

但我真正需要的是分别得到1队和2队的分数,这样就更像是......

+----------------+----------------+
| team_a_score   |  team_b_score  |
+----------------+----------------+
|    15          |     9          |
+----------------+----------------+
Run Code Online (Sandbox Code Playgroud)

希望这很清楚

Tar*_*ryn 6

看起来你希望结果在同一行,所以你会使用这个:

select sum(case when team = 1 then score end) team_a,
  sum(case when team = 2 then score end) team_b
from yourtable
where `match` = 1
Run Code Online (Sandbox Code Playgroud)

看看SQL Fiddle with Demo