Oracle sql 查询需要在表的其他列下显示 count(*) 值



我有一个来自Oracle sql的要求,它将显示来自查询的数据并输出一些如下所示的内容:-

  • 第一种情况:-Count(( 介于 0-2 之间,则 count(( 值应在 0-2 列下
  • 第二种情况:-Count(( 介于 2-4 之间,则 count(( 值应在 2-4 列下
  • 第三种情况:-Count(( 介于 4-24 之间,则 count(( 值应在 4-24 列下
  • 第四种情况:-Count(( 介于 24-48 之间,则 count(( 值应在 24-48 列下
  • 第五种情况:-Count(( 是>48 或"刨丝器大于 48",则 count(( 值应低于 48 列>

查询:

Select a,b,Count(*),0-2,2-4,4-24,24-48,>48
from Table
where id=4
group by a,b,0-2,2-4,4-24,24-48,>48;

id=4 的示例输出,这里假设计数在这里是 6

Count(*)|0-2|2-4|4-24|24-48|>48|
--------|---|---|----|-----|---|
6       |0  |0  |6   |0    |0  |

注意 0-2,2-4,4-24,24-48,>48 是列名

这只是

一堆case语句:

Select a, b,
       (case when Count(*) < 2 then count(*) else 0 end) as "0-1",
       (case when count(*) >= 2 and count(*) < 4 then count(*) else 0 end) as "2-3",
       . . .
from Table
where id = 4
group by a, b;

注意:between包含在 SQL 中。 我假设您不希望"2"的计数出现在两列中。

最新更新