首页 > 数据库 >Oracle over(partition by) 用法

Oracle over(partition by) 用法

时间:2023-09-12 10:14:28浏览次数:50  
标签:name -- over partition 序号 Oracle age SELECT

语法与说明

select AAA, 序号函数 over(partition by BBB group by CCC) from table;
  1. select后面跟什么字段随便。
  2. 序号函数有多种,类似row_number()等。
  3. partition by后面跟的字段实际是分组字段,与group by 后面跟的字段类似。
  4. 再之后的order字段,就是分组后排序。

序号函数说明

测试数据

CREATE TABLE over_func_tmp(
name varchar(10),
age  number(1)
);

INSERT INTO over_func_tmp(name,age) 
SELECT 'a', 1 FROM dual UNION ALL  
SELECT 'a', 1 FROM dual UNION ALL  
SELECT 'a', 2 FROM dual UNION ALL  
SELECT 'a', 4 FROM dual
;

row_number()

直接按照结果从1开始升序。

SELECT t.name, t.age , ROW_NUMBER() over(PARTITION BY name ORDER BY age) AS no FROM over_func_tmp t;
--a	1	1
--a	1	2
--a	2	3
--a	4	4

rank()

如果结果中,某数据相同,则序号相同,下一行数据序号+2。

SELECT t.name, t.age , rank() over(PARTITION BY name ORDER BY age) AS no FROM over_func_tmp t;
--a	1	1
--a	1	1
--a	2	3
--a	4	4

dense_rank()

如果结果中,某数据相同,则序号相同,下一行数据序号+1。

SELECT t.name, t.age , dense_rank() over(PARTITION BY name ORDER BY age) AS no FROM over_func_tmp t;
--a	1	1
--a	1	1
--a	2	2
--a	4	3

标签:name,--,over,partition,序号,Oracle,age,SELECT
From: https://www.cnblogs.com/hr0552/p/17695155.html

相关文章

  • Oracle 查询当前用户下所有索引(Index)并拼接创建脚本
    原文地址:https://blog.csdn.net/zy_workjob/article/details/82011825 Oracle查询当前用户下所有索引(Index,PK)并拼接创建脚本【不包含FUNCTION-BASED基于函数的索引】SELECTT.TABLE_NAME,--表名T.INDEX_NAME,--索引名I.UNIQUENESS,--是否非空I.INDEX_......
  • css3属性之 text-overflow:ellipsis
    语法:text-overflow:clip |  ellipsis默认值为clip不显示省略标记clip:当前对象内文本溢出时不显示省略标记,而是将溢出部分裁剪。ellipsis:当对象内文本一处时显示省略标记(...)。一、常见的单行文本溢出显示省略写法:text-overflow:ellipsis;overflow:hidden;white-......
  • oracle sql*plus常用命令
    文章转载自:https://www.cnblogs.com/csschn/p/4864653.html一、sys用户和system用户Oracle安装会自动的生成sys用户和system用户(1)、sys用户是超级用户,具有最高权限,具有sysdba角色,有createdatabase的权限,该用户默认的密码是change_on_install(2)、system用户是管理操作员,权......
  • 数据库数据恢复-Oracle数据库误执行truncate table的数据恢复案例
    Oracle数据库故障&分析:北京某单位Oracle11gR2数据库误执行truncate table CM_CHECK_ITEM_HIS,表数据丢失,查询该表时报错。数据库备份无法使用,表数据无法查询。Oracle数据库Truncate数据的机理:执行Truncate命令后,ORACLE数据库会在数据字典和Segment Header中更新表的Data O......
  • oracle 去重函数(逗号分割后去重,行转列)
    createorreplacefunctionaaa_distinct(avarchar2)returnvarchar2asresultsvarchar2(2000):='';begin selectlistagg(CONTRACTNO_listagg,',')withingroup(orderbyCONTRACTNO_listagg)intoresultsfrom(selectdistinctsubs......
  • 检查Oracle中是否是“数字”函数,Oracle11时候,报is_number 无效的运算符,使用lenth( )
    检查Oracle中是否是“数字”函数原文链接:https://www.jb51.cc/oracle/207329.html我试图检查来自oracle(10g)查询中的列的值是否是一个数字,以便进行比较。就像是:selectcasewhen(is_number(myTable.id)and(myTable.id>0))then'Isanumbergreaterth......
  • 如何使用Oracle判断是否为数字,使用 REGEXP_LIKE 正则
    如何使用Oracle判断是否为数字原文链接:https://www.python100.com/html/KDO3R3J4S004.html一、判断是否为数字的方法在Oracle中,常用的判断是否为数字的方法是使用REGEXP_LIKE函数和正则表达式。SELECTCASEWHENREGEXP_LIKE('123','^[[:digit:]]+$')THEN'是数字'ELSE'......
  • Debezium日常分享系列之:Oracle数据库系列文章之安装和设置
    Debezium日常分享系列之:Oracle数据库系列文章之安装和设置一、什么是Oracle二、安装Oracle三、配置Oracle1.配置Oracle:归档日志2.配置Oracle:重做日志3.配置Oracle:补充日志记录4.配置Oracle:用户设置四、总结这篇文章是由3部分组成的系列文章的一部分,该系列文章探讨如何使用......
  • Debezium系列之:获取Oracle JDBC驱动程序和XStream API文件
    Debezium系列之:获取OracleJDBC驱动程序和XStreamAPI文件一、背景二、详细步骤1.下载OracleClient包2.解压缩3.复制ojdbc8.jar和xstreams.jar文件4.创建环境变量三、XStream连接器属性一、背景DebeziumOracle连接器需要OracleJDBC驱动程序(ojdbc8.jar)才能连接到Oracl......
  • ORACLE内置函数
    ORACLE内置函数原文链接:https://blog.csdn.net/m0_63300795/article/details/124473586目录一,内置函数的分类.二,转换函数三,日期函数四,字符函数五,数学函数六,聚合函数一,内置函数的分类.内置函数:Oracle自带的函数,我能只需要去调用就可以了。Oracle里面的内置函数分为......