sql—在mysql中给定两个或多个条件的列中求和

zqry0prt  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(462)

在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 列现在是单元格的总和,这样匹配、季节和团队都是相同的。我有下面的代码。我看到很多答案都使用“case”,但似乎给出的逻辑运算符并不相等。当我在下面做的时候,现在它无法识别列来自哪个表。我确实有一个内部连接,但数据本身来自一个表。我在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

编辑:事实证明,我需要按照评论的建议使用groupby。所以我不是在一个表中求和,而是对给定参数的变量求和。

0s0u357o

0s0u357o1#

除非我漏掉了什么,否则就是:

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

7bsow1i62#

很简单:

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

请看SQLFiddle示例。

相关问题