如何用零填写总计查询中的空白?

时间:2014-10-09 07:29:11

标签: sql oracle oracle11g oracle10g

我有一个包含这样数据的表

picks
20  
20  
20  
18  
17  
12  
12  
9   
9

这是表格,但我需要得到这样的结果。

Picks  Count
20     3   
19     0
18     1
17     1
16     0

...up to

1      12

我们如何编写查询以获得表中不存在的数据的零总数?

阿伦

1 个答案:

答案 0 :(得分:2)

使用子查询生成所有数字,然后将其连接到表中。

with nos as ( select level as pick_id
              from dual
              connect by level <= 20 )
select nos.pick_id
       , count(*)  
from nos
     left outer join picks
          on nos.pick_id = picks.id
group by nos.pick_id
order by nos.pick_id desc ;