在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参数的情况下对变量求和。
答案 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