问题描述
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语法可以实现这种效果: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运行结果跟你想要的结果是一样的
时间: 2024-08-31 15:33:21