如果没有符合条件的行,我试图获取计数值0.
我有一张大桌子.但是,我发布了一个截断表,因为它解释了我想要的东西.
例
表格1:
**name year title**
name1 2008 title1
name2 2009 title2
name3 2010 title1
name1 2008 title2
name4 2009 title1
name2 2008 title2
Run Code Online (Sandbox Code Playgroud)
我想显示year = 2008的每个名字的行数.那么,如果没有与2008年相关的行那么.应显示名称及其计数0.
输出应该是:
**name count**
name1 2
name2 1
name3 0
name4 0
Run Code Online (Sandbox Code Playgroud)
解决方法:
select p.name,(select count(*)
from table1 b
where b.name=p.name) as count
from table1 p
where p.year=2008;
Run Code Online (Sandbox Code Playgroud)
尝试了一些.但是,它们都没有奏效.
试试这个:
select p.name,
count(case when p.year=2008 then 1 end) as count
from table1 p
group by p.name
Run Code Online (Sandbox Code Playgroud)
该查询使用条件聚合,以便有条件地计算值的year=2008出现次数p.name.
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |