按某个时间点不可用的值计数进行分组

时间:2015-10-28 07:36:44

标签: sql oracle11g

我有一种情况,我希望在给定列的固定数量的值上返回group by select code, status, status_desc, count(*) from table group by code, status, status_desc; 的结果,即使列值在某个给定时间点可能不存在在这种情况下,它将返回零。

示例:

cef

返回以下计数:

![enter image description here] 1

现在状态可以在任何给定时间点取值1,2,3,4,5,6,7。 我如何得到结果集以及它们的计数为零,以便我的结果集总是返回7行,每个状态的计数,即使每个代码当时为空。

这是一个oracle 11g DB。

1 个答案:

答案 0 :(得分:0)

你可以在任何给定的时间点尝试这个:)

   select * from (select status status, count(*) from your_table group by status union all
   select stat status, 0 from (select level stat from dual connect by level <=7) where stat not in(select status from your_table)) order by status