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只是简单的把三个语句连接起来,在数据库里面还是分别进出数据库,时间没有节省。有没有只用一个语句,只是限制语句不同的。(是一个语句,不是简单的连接在一起就完了,追求的是时间效率)
展开
 我来答
gladin
2010-06-09 · 超过24用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:68万
展开全部
你这个HS<70;HS between 70 and 85;HS>85包含了所有的范围的HS了。因此要选择数据直接用:
select count(JH) JH,sum(YSYl) YSYl from table1;

就行了,不需要union all。
华夏日长兴
2010-06-05 · TA获得超过9594个赞
知道大有可为答主
回答量:6305
采纳率:85%
帮助的人:3849万
展开全部
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

这样写就行了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
许一世安好a
2018-07-14 · TA获得超过636个赞
知道小有建树答主
回答量:1430
采纳率:50%
帮助的人:829万
展开全部
用case when吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
budongfcwr
2010-06-06
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
用union all连接
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友36cabda
推荐于2018-04-11 · TA获得超过298个赞
知道小有建树答主
回答量:493
采纳率:0%
帮助的人:327万
展开全部
union all连接起来不行吗
你上面的查询全都查一行,然后连接起来就可以把
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式