oracle sql查询完成分组并只返回每组的最小最大值

一张表table只有一个字段id,实现以下功能,使用一条sql进行查询,将表中数据按按id排序,并每100条进行分组,返回结果只有每组中的最小id值和最大id值。假设id... 一张表table 只有一个字段 id,实现以下功能,使用一条sql进行查询,将表中数据按按id排序,并每100条进行分组,返回结果只有每组中的最小id值和最大id值。假设id为1-550 共550条数据,那么返回结果为:
min_id max_id
1 100
101 200
201 300
301 400
401 500
501 550
展开
 我来答
frogley
推荐于2018-05-13 · TA获得超过1854个赞
知道小有建树答主
回答量:1008
采纳率:50%
帮助的人:1085万
展开全部

我的测试表里有7条数据。每3条数据分作一组求最小和最大id。

WITH tmp ("id") AS 
(SELECT 1 FROM DUAL UNION ALL
SELECT 2 FROM DUAL UNION ALL
SELECT 3 FROM DUAL UNION ALL
SELECT 4 FROM DUAL UNION ALL
SELECT 5 FROM DUAL UNION ALL
SELECT 6 FROM DUAL UNION ALL
SELECT 7 FROM DUAL 
)
 
select min("id") min_id,max("id") max_id
from (
select "id",row_number() over (order by "id") seq from tmp
) t 
group by floor((seq-1)/3) 
order by floor((seq-1)/3)

结果如下:

楼主把上面语句里的3换成100就行了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式