首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql选择count with组,如果未找到结果则添加null值

sql选择count with组,如果未找到结果则添加null值
EN

Stack Overflow用户
提问于 2017-03-15 08:14:41
回答 1查看 25关注 0票数 0

我有三个表,我想用另一个表列中的组来计数每一行。

问题是,当没有找到记录时,组计数将不会返回任何内容。

因此,我希望为每个未找到记录的组添加空值。

以下是查询:

代码语言:javascript
复制
select monster.monster_name,count(*) as count
from monster right join monster_ability 
on monster.monster_id= monster_ability.monster_id  where    
isnull(monster_ability.used) 
group by monster.monster_id

这是小提琴:小提琴

我希望结果应该是这样的:

代码语言:javascript
复制
| monster_name | count |
|--------------|-------|
|         kora |     1 |
|      lowdowu |     3 |
|      ngjengeh|   null|
|       lortyu |     1 |
|     foh du fy|   null|
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-15 08:24:50

当计数为0时,使用case when获得null:

代码语言:javascript
复制
select
    m.monster_name,
    case when count(a.ability_id) = 0 then null else count(a.ability_id) end as `count`
from monster m
left join monster_ability ma on m.monster_id = ma.monster_id and ma.used is null
left join ability a on ma.ability_id = a.ability_id
group by m.monster_id

我是SQLFiddle 演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42804263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档