在MySQL中给定两个或多个条件的列中的总和

时间:2018-08-14 12:53:48

标签: mysql sql sum

在MySQL中,我尝试在给定特定条件的情况下对列中的值求和。我在下面有一些数据示例

Team    Season  Mth    Stat
A       1       1       4
A       1       1       4
A       1       2       7
A       1       2       9
B       1       1       6
B       1       1       6
B       1       2       6
B       1       2       9
C       1       1       1
C       1       1       3
C       1       2       3
C       1       2       6

但是我需要输出显示为

Team    Season  Mth    Stat
A       1       1       8
A       1       2       16
B       1       1       12
B       1       2       15
C       1       1       4
C       1       2       9

因此Stat列现在是单元格的总和,以使Match,Season和Team都相同。我有下面的代码。我看到了很多使用“大小写”的答案,但似乎给出了彼此不相等的逻辑运算符。当我在下面执行此操作时,现在它无法识别表的来源。我确实有一个内部联接,但数据本身来自一个表。我在sum函数上也遇到另一个错误,因为它需要一个参数。

select
     Team
    ,Season
    ,Match
    --this is where I get lost-----------
    sum(
        select
          Stat
        From
          table
        Where
           Mth=Mth
          AND Season=Season
          AND Team=Team
         )
    --end of getting lost----------------
FROM
    table
Where
    Season IN (1,2)
GROUP BY
     Team
    ,Season
    ,Mth
Order BY
    Team ASC

编辑: 事实证明,我需要使用GROUP BY作为评论建议。因此,我不是在表中求和,而是在给定Group By参数的情况下对变量求和。

2 个答案:

答案 0 :(得分:1)

这很简单:

SELECT   Team,
         Season,
         Match,
         SUM(Stat)
FROM     Table
WHERE    Season IN (1,2)
GROUP BY Team,
         Season,
         Match
ORDER BY Team ASC

请查看SQL Fiddle示例。

答案 1 :(得分:1)

除非我缺少任何东西,否则就很简单:

SELECT Team
    ,Season
    ,Match
    ,Sum(Stat)
FROM table
GROUP BY
     Team
    ,Season
    ,Match