代码之家  ›  专栏  ›  技术社区  ›  Jack Armstrong

MySQL中给定两个或多个条件的列内求和

  •  -1
  • Jack Armstrong  · 技术社区  · 6 年前

    在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

    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。所以我不是在一个表中求和,而是用参数对给定的变量求和。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Widor    6 年前

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

    SELECT Team
        ,Season
        ,Match
        ,Sum(Stat)
    FROM table
    GROUP BY
         Team
        ,Season
        ,Match
    
        2
  •  1
  •   zipa    6 年前

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

    请看看 SQL Fiddle