gpt4 book ai didi

mysql - 分组依据,其中 null 属于所有组

转载 作者:行者123 更新时间:2023-11-29 01:19:52 25 4
gpt4 key购买 nike

假设我有下表

|     a_id   |  b_id       |   price  |
| 1 | 10 | 100 |
| 1 | 11 | 50 |
| 1 | NULL | 300 |

我想按 a_id 和 b_id 对它进行分组并得到价格总和,但是 NULL 必须属于这两个组。我想得到这样的表

|     a_id   |   price  |
| 1 | 400 |
| 1 | 350 |

有什么想法吗?提前致谢。

最佳答案

你可以使用:

SELECT a_id,  
SUM(price) + COALESCE(
(SELECT SUM(price) FROM tab3 WHERE a_id = t.a_id AND b_id IS NULL),0)
AS price
FROM tab3 t
WHERE b_id IS NOT NULL
GROUP BY a_id, b_id;

Rextester Demo

工作原理:

  • 主查询根据 a_id、b_id 做聚合,其中 b_id 不为空
  • 添加到 b_id IS NULL 的结果值(相关子查询)

关于mysql - 分组依据,其中 null 属于所有组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45423880/

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