博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 分组排序函数
阅读量:4124 次
发布时间:2019-05-25

本文共 519 字,大约阅读时间需要 1 分钟。

项目开发中,我们有时会碰到需要分组排序来解决问题的情况:

1、要求取出按field1分组后,并在每组中按照field2排序;
2、亦或更加要求取出1中已经分组排序好的前多少行的数据

这里通过一张表的示例和SQL语句阐述下oracle数据库中用于分组排序函数的用法。

1.row_number() over()
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。
与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪劣rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码。row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开始排序)。

2.rank() over()

rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)

3.dense_rank() over()

dense_rank()也是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的。

转载地址:http://mwepi.baihongyu.com/

你可能感兴趣的文章
ubuntu 16.04 Titanxp 安装cuda10.0 cudnn7.6 环境
查看>>
git使用教程
查看>>
linux gcc编译环境变量和动态库路径问题浅析以及LD_LIBRARY_PATH和LIBRARY_PATH区别
查看>>
Ubuntu 16.04 编译安装opencv 3.4.6过程和 anaconda3/lib/libtiff.so.5: undefined reference to `ZSTD_freeCStre
查看>>
C++ 拷贝构造和赋值构造示例
查看>>
python numpy list 多维度数组保存和读取恢复
查看>>
对抗样本 FGSM 算法代码实现 Adversarial Examples Keras Tensorflow实现
查看>>
because cuDNN failed to initialize Tensorflow 显存分配。
查看>>
ByteArrayInputStream和ByteArrayOutputStream 避免创建临时文件
查看>>
SpringBoot Hadoop HDFS目录文件下载
查看>>
CFI and SFI
查看>>
fedora 8 安装 scilab
查看>>
fc 8 安装xen
查看>>
Linux 汇编语言开发指南
查看>>
马拉松(一)
查看>>
ES TCP客户端方式自动映射mapping写入异常
查看>>
ES自定义Analyzer扩展IK分词
查看>>
记录一次系统计算逻辑优化
查看>>
创建Spring Boot项目
查看>>
Spring Boot 扫描不到Controller
查看>>