我有一张桌子,在这里我需要对一些列值求和并将结果分组,但是如果单词字段为空,我需要查看最后一个单词值。
样品台

| id| cod |  word | value |
| 1 |  1  | descr |     2 |
| 2 |  2  | texts |     3 |
| 3 |  1  | world |     5 |
| 4 |  1  | null  |     4 |
| 5 |  2  | null  |     4 |


从cod中选择*,sum(value)作为表组的总和给出此结果

| cod |  word | suma  |
|  1  | null  |    11 |
|  2  | null  |    7  |


但我需要这个结果:

   | cod |  word  | suma |
   |  1  | world  |   11 |
   |  2  | texts  |   7  |


什么是正确的MySQL查询来做到这一点?

谢谢

最佳答案

如果您需要100%确保使用此功能:

SELECT cod, word, SUM(value) AS suma FROM test WHERE word IS NOT NULL GROUP BY cod


但:

mysql - 如果空字段,则MySQL分组保留最后一个值-LMLPHP

我刚刚测试过。该表与您的表相同,查询与您提到的表相同。

08-27 16:26