您的位置:首页 > 数据库 > Oracle

Oracle实现对查询结果每N条再次分组

2015-09-25 10:54 453 查看
问题描述:



原始数据:

*.DMP文件见http://download.csdn.net/detail/u012920086/9138513,账号密码都是lanbin,有兴趣的朋友可以导入学习下

Select sid,time,pre_1h from livedata live
where live.time <= to_date('2015-09-24 12:00:00', 'yyyy-mm-dd hh24:mi:ss') and live.time > to_date('2015-09-23 12:00:00', 'yyyy-mm-dd hh24:mi:ss')
and sid = 'A2401'
order by time




解决办法:

SELECT floor(rownum/3) AS groupid ,SUM(live.pre_1h),MAX(live.time) max_time from livedata live
where live.time <= to_date('2015-09-24 12:00:00', 'yyyy-mm-dd hh24:mi:ss')
and live.time > to_date('2015-09-23 12:00:00', 'yyyy-mm-dd hh24:mi:ss')
and sid = 'A2401'
group by  floor(rownum/3) order by max_time




知识点:

1、Oracle导出语句

expdp lanbin/lanbin dumpfile=wq20150925.DMP  directory=DATA_PUMP_DIR schemas=lanbin


2、ROWNUM是一种伪列,它会根据返回记录生成一个序列化的数字。利用ROWNUM,我们可以生产一些原先难以实现的结果输出。以后有空再学习下ROWNUM,rowid的相关知识
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息