gpt4 book ai didi

MySQL Select 使用 COUNT 返回错误的 NULL 值

转载 作者:行者123 更新时间:2023-11-29 06:13:46 26 4
gpt4 key购买 nike

假设我有一个包含两列的 users 表,idreferer_id

enter image description here

如果用户被其他人推荐,他的推荐人将在 referer_id 中。如果他自己注册,那么 referer_id 将为 NULL

我想统计一个用户有多少推荐用户。

我有这样的问题

SELECT `referer_id`,count(`referer_id`) FROM `users`
GROUP BY `referer_id`

enter image description here

如您所见,NULL 计数为 0 ,但我有很多用户没有被任何人推荐。我该如何解决这个问题?

最佳答案

我不喜欢这样,我认为有一个更优雅的解决方案,但它有效并且可以帮助您找到更好的解决方案。

select 
t1.id,
ifnull(t3.ct, 0)
from
temp t1
left join
(select
t2.referer_id,
count(t2.referer_id) as ct
from temp t2
group by t2.referer_id) t3
on t1.id = t3.referer_id;

经过深思熟虑,这里有一个避免子选择的选项:

select t1.id, ifnull(count(t2.referer_id), 0)
from temp t1
left join temp t2 on t1.id = t2.referer_id
group by t1.id;

关于MySQL Select 使用 COUNT 返回错误的 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37016294/

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