
oracle中根据字段数值范围为分组
oracle表中有个HS(含水)字段,number类型,里面有各种数值0--100(包括小数),现在要求按HS<70,HSbetween70and85,HS>85这三个范...
oracle表中有个HS(含水)字段,number类型,里面有各种数值0--100(包括小数),现在要求按HS<70,HS between 70 and 85 ,HS>85这三个范围来分组。我在编程时遇到的,望大家帮帮忙~~小弟期待各位高手的帮助~~
比如select count(JH),sum(YSYl) from table1 where HS<70;
select count(JH),sum(YSYl) from table1 where HS between 70 and 85;
select count(JH),sum(YSYl) from table1 where HS>85;
想利用HS的分组,最终用一个选取语句取出三行,每行对应的都是上面的一行值,怎么实现?
用union all只是简单的把三个语句连接起来,在数据库里面还是分别进出数据库,时间没有节省。有没有只用一个语句,只是限制语句不同的。(是一个语句,不是简单的连接在一起就完了,追求的是时间效率) 展开
比如select count(JH),sum(YSYl) from table1 where HS<70;
select count(JH),sum(YSYl) from table1 where HS between 70 and 85;
select count(JH),sum(YSYl) from table1 where HS>85;
想利用HS的分组,最终用一个选取语句取出三行,每行对应的都是上面的一行值,怎么实现?
用union all只是简单的把三个语句连接起来,在数据库里面还是分别进出数据库,时间没有节省。有没有只用一个语句,只是限制语句不同的。(是一个语句,不是简单的连接在一起就完了,追求的是时间效率) 展开
5个回答
展开全部
你这个HS<70;HS between 70 and 85;HS>85包含了所有的范围的HS了。因此要选择数据直接用:
select count(JH) JH,sum(YSYl) YSYl from table1;
就行了,不需要union all。
select count(JH) JH,sum(YSYl) YSYl from table1;
就行了,不需要union all。
展开全部
select count(JH) JH,sum(YSYl) YSYl from table1 where HS<70
union all
select count(JH) JH,sum(YSYl) YSYl from table1 where HS between 70 and 85
union all
select count(JH) JH,sum(YSYl) YSYl from table1 where HS>85
这样写就行了
union all
select count(JH) JH,sum(YSYl) YSYl from table1 where HS between 70 and 85
union all
select count(JH) JH,sum(YSYl) YSYl from table1 where HS>85
这样写就行了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用case when吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
union all连接起来不行吗
你上面的查询全都查一行,然后连接起来就可以把
你上面的查询全都查一行,然后连接起来就可以把
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询