gpt4 book ai didi

MySQL:与 SUM 一起使用的 IF 语句

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:40 25 4
gpt4 key购买 nike

我有下表:

Unique | Common |  Score
1 | 1 | 10
2 | 1 | 10
3 | 1 | 10
4 | 1 | -10

如果我运行这个:

SELECT
SUM(`score`) AS `total`
FROM
`test`
GROUP BY
`common`

我得到总数:

20

这是我所期望的。

我想将负数视为零并对剩余分数求和以获得总数。所以,如果我运行这个:

SELECT
IF(`score`<0, 0, SUM(`score`)) AS `total`
FROM
`myTable`
GROUP BY
`unique`

我得到这些总数:

10
10
10
0

这也是我所期望的。

但是,如果我运行这个:

SELECT
IF(`score`<0, 0, SUM(`score`)) AS `total`
FROM
`myTable`
GROUP BY
`common`

我总共得到:

20

为什么我在执行最后一个查询时得到的是 20 而不是 30?唯一的区别是分组。

顺便说一句,从最后一个查询中删除多余的 Group by 子句也会得到 20 的结果。

提前致谢。

最佳答案

试试这个

 SELECT
SUM(`score`) AS `total`
FROM
`myTable` WHERE score > 0
GROUP BY
`common`

关于MySQL:与 SUM 一起使用的 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9804572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com