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 展开
min_id max_id
1 100
101 200
201 300
301 400
401 500
501 550 展开
1个回答
展开全部
我的测试表里有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就行了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询