MySQL:IF语句与SUM一起使用
我有下表:MySQL:IF语句与SUM一起使用,mysql,Mysql,我有下表: 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` SELECT IF(`score`<0, 0, SUM(`sc
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`
SELECT
IF(`score`<0, 0, SUM(`score`)) AS `total`
FROM
`myTable`
GROUP BY
`unique`
SELECT
IF(`score`<0, 0, SUM(`score`)) AS `total`
FROM
`myTable`
GROUP BY
`common`
我得到了总数:
20
这就是我所期望的
我想将负数视为零,然后将剩余分数相加得到一个总数。所以,如果我运行这个:
SELECT
SUM(`score`) AS `total`
FROM
`test`
GROUP BY
`common`
SELECT
IF(`score`<0, 0, SUM(`score`)) AS `total`
FROM
`myTable`
GROUP BY
`unique`
SELECT
IF(`score`<0, 0, SUM(`score`)) AS `total`
FROM
`myTable`
GROUP BY
`common`
这也是我所期望的
但是,如果我运行这个:
SELECT
SUM(`score`) AS `total`
FROM
`test`
GROUP BY
`common`
SELECT
IF(`score`<0, 0, SUM(`score`)) AS `total`
FROM
`myTable`
GROUP BY
`unique`
SELECT
IF(`score`<0, 0, SUM(`score`)) AS `total`
FROM
`myTable`
GROUP BY
`common`
为什么在执行最后一个查询时得到20而不是30?唯一的区别是分组
顺便说一句,从最后一个查询中删除superflousgroupby
子句也会得到20的结果
提前谢谢。试试这个
SELECT
SUM(`score`) AS `total`
FROM
`myTable` WHERE score > 0
GROUP BY
`common`
试试这个
SELECT
SUM(`score`) AS `total`
FROM
`myTable` WHERE score > 0
GROUP BY
`common`
我还没有测试过这个,但我认为你的IF和SUM是错误的。我想应该是这样
SELECT
SUM( IF(`score`<0, 0,`score`) ) AS `total`
FROM
`myTable`
GROUP BY
`common`
选择
SUM(如果,`score`我还没有测试过这个,但是我认为你的IF和SUM是错误的。我认为应该是这样的
SELECT
SUM( IF(`score`<0, 0,`score`) ) AS `total`
FROM
`myTable`
GROUP BY
`common`
选择
求和(如果(`score`Try
选择
求和(如果(`score`Try
选择
求和(IF(`score`因为它做的是10+10+10+-10),也就是20。如果你想把负数当作零,你还想在结果集中有<0的行吗?因为它做的是10+10+10+-10),即20。如果要将负数视为零,是否仍希望结果集中的行数小于0?如果记录的分数此查询将提供正确的结果如果记录的分数