我有一个来自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"的计数出现在两列中。