rownum注意问题2
来源:互联网 发布:工信部大数据行动 编辑:程序博客网 时间:2024/05/18 07:49
利用rownum可以得到连续数字中的一段。例如有以下数据:
fphm,kshm
2014,00000001
2014,00000002
2014,00000003
2014,00000004
2014,00000005
2014,00000007
2014,00000008
2014,00000009
2013,00000120
2013,00000121
2013,00000122
2013,00000124
2013,00000125
希望实现最终结果如下:
2014 00000001 00000005
2014 00000007 00000009
2013 00000120 00000122
2013 00000124 00000125
解决方案:
一. 利用rownum伪列 实现SQL:
select b.fphm,min(b.kshm),max(b.kshm)
from (
select a.*,to_number(a.kshm-rownum) cc
from (
select * from t order by fphm,kshm
) a
) b
group by b.fphm,b.cc
/
二、利用rownum分析函数
SELECT fphm, MIN(kshm),MAX(kshm)
FROM
( SELECT fphm, kshm, kshm-ROW_NUMBER() OVER (PARTITION BY fphm ORDER BY kshm ) AS RN
FROM T
)
GROUP BY fphm,RN;
三、最简洁SQL
select max(fphm),min(kshm),max(kshm)
from test
group by fphm||khsm-rownum
其他:
1. 可以通过rownum实现间断数据的分割。
2. 可以利用rownum求一组不连续数据的最小值。(这通常可以用来补足一串数字,很有用,曾经用过)
文章来源:http://www.itpub.net/viewthread.php?tid=354052&extra=&page=1
更多解决方案:http://blog.itpub.net/post/5042/27936
- rownum注意问题2
- rownum注意问题
- oracle rownum使用注意问题
- 使用rowid和rownum获取记录时要注意的问题
- 关于Rownum的问题
- oracle rownum问题
- mysql实现rownum问题
- rownum排序的问题
- oracle rownum的问题
- oracle rownum的问题
- sql rownum的问题
- 视图中使用ROWNUM要注意
- 对于 Oracle 的 rownum 问题
- 对于 Oracle 的 rownum 问题
- Rownum
- rownum
- rownum
- rownum
- ARM920T协处理器以及MMU的分析(二)
- GB编码与UTF8编码的转换
- 树状数组的简单应用(夏夜砍树)
- 制作我的动网论坛
- 自动登录FTP脚本
- rownum注意问题2
- GPS初步
- iPhone开发启程
- LAMP系统性能调优 MySQL数据库服务器优化
- css hack
- HW的未来会不会重复这条路?---读《失落的王安:与蓝色巨人交锋数十载》
- TCP/IP 详解 卷1 ch3 IP
- Redhat 安装gcc g++编绎器
- 命名函数表达式探秘