gpt4 book ai didi

mysql - 仅当所有分组行不为空时求和,否则返回空

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

我有一个这样的表:

 item_id   quantity
1 2
1 3
2 NULL
2 4
3 NULL
3 NULL

现在我正在做这样的选择:

SELECT 
sum(`quantity`) AS `total_quantity`,
FROM `items`
GROUP BY `item_id`

现在,它分别返回 5、4 和 NULL,但我想要 5、NULL 和 NULL。

我希望如果分组行中有 NULL 值,则总和应该为 NULL,而不是列不为空的行的总和。我怎样才能做到这一点?

谢谢!

最佳答案

您只能使用case 语句来检查组中的任何行是否包含null 作为数量

SELECT item_id,
CASE WHEN SUM(quantity IS NULL) > 0
THEN NULL
ELSE SUM(quantity)
END quantity
FROM items
GROUP BY item_id

使用@Abhik Chakraborty 的 fiddle

DEMO

关于mysql - 仅当所有分组行不为空时求和,否则返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31212847/

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