oracle 字段范围查询
oralce中有一张表temp,表数据如下
name value
张三 1
李四 2
王五 5
张三 8
张三 6
李四 7
请问各位大神怎么能将上面的数据 进行统计转换成:
name 1-3 4-6 7-10
张三 1 1 1
李四 1 0 1
王五 0 1 0
统计value值在1-3、4-6、7-10三个区间的数目,按照name分组
用case when语法可以实现这种效果:
[code="sql"]
select t.name,
sum(case
when t.value >= 1 and t.value <= 3 then
1
else
0
end) "1-3",
sum(case
when t.value >= 4 and t.value <= 6 then
1
else
0
end) "4-6",
sum(case
when t.value >= 7 and t.value <= 10 then
1
else
0
end) "7-10"
from temp t
group by t.name
[/code]
运行结果跟你想要的结果是一样的