gpt4 book ai didi

sql - 带SUM的GROUP BY,不会删除空(空)值

转载 作者:行者123 更新时间:2023-12-04 22:11:03 27 4
gpt4 key购买 nike

表格:

玩家们

player_no   | transaction_id
----------------------------
1 | 11
2 | 22
3 | (null)
1 | 33


交易次数

id            | value   |
-----------------------
11 | 5
22 | 10
33 | 2


我的目标是获取所有数据,维护所有播放器,即使在以下查询中使用 null值也是如此:

SELECT p.player_no, COUNT(p.player_no), SUM(t.value) FROM Players p 
INNER JOIN Transactions t ON p.transaction_id = t.id
GROUP BY p.player_no


但是结果省略了空值,例如:

player_no | count  | sum
------------------------
1 | 2 | 7
2 | 1 | 10


我想提到的是空值:

player_no | count  | sum
------------------------
1 | 2 | 7
2 | 1 | 10
3 | 0 | 0


我在这里想念什么?
实际上,我为此使用了QueryDSL,但是将示例转换为纯SQL,因为它的行为方式相同。

最佳答案

使用LEFT JOINcoalesce函数

SELECT p.player_no, COUNT(p.player_no), coalesce(SUM(t.value),0) 
FROM Players p
LEFT JOIN Transactions t ON p.transaction_id = t.id
GROUP BY p.player_no

关于sql - 带SUM的GROUP BY,不会删除空(空)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50064188/

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