我有以下表格:MySQL的:IF與SUM
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進行最後的查詢時?唯一的區別是分組。
BTW,除去最後的查詢superflous Group by
條款也給出了20
在此先感謝的結果。
因爲它做的10 + 10 + 10 +( - 10),這是20。 – 2012-03-21 12:31:26