`

ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)

 
阅读更多

原创转载请注明出处:http://agilestyle.iteye.com/blog/2357284

 

ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)

create table

CREATE TABLE EMPLOYEE
(
  EMPID INTEGER PRIMARY KEY,
  DEPTID INTEGER,
  SALARY DECIMAL(10,2)
);

 

insert data

INSERT INTO EMPLOYEE VALUES(1, 10, 5500.00);
INSERT INTO EMPLOYEE VALUES(2, 10, 4500.00);
INSERT INTO EMPLOYEE VALUES(3, 10, 6500.00);
INSERT INTO EMPLOYEE VALUES(4, 20, 1900.00);
INSERT INTO EMPLOYEE VALUES(5, 20, 4800.00);
INSERT INTO EMPLOYEE VALUES(6, 20, 5800.00);
INSERT INTO EMPLOYEE VALUES(7, 40, 6500.00);
INSERT INTO EMPLOYEE VALUES(8, 40, 14500.00);
INSERT INTO EMPLOYEE VALUES(9, 40, 44500.00);
INSERT INTO EMPLOYEE VALUES(10, 50, 6500.00);
INSERT INTO EMPLOYEE VALUES(11, 50, 7500.00);
INSERT INTO EMPLOYEE VALUES(12, 50, 8500.00);

 

简单查询

SELECT * FROM EMPLOYEE;


 

分组排序查询

SELECT EMPID, DEPTID, SALARY, 
  ROW_NUMBER() OVER (PARTITION BY DEPTID ORDER BY SALARY DESC) rn
FROM EMPLOYEE;


 

Reference

https://docs.oracle.com/database/121/SQLRF/functions170.htm#SQLRF06100

  • 大小: 7.3 KB
  • 大小: 8.4 KB
分享到:
评论

相关推荐

    ROW_NUMBER() OVER函数的基本用法

    ROW_NUMBER() OVER (PARTITION BY COLUMN ORDER BY COLUMN) 其中,PARTITION BY COLUMN 是用于分组的列名,ORDER BY COLUMN 是用于排序的列名。ROW_NUMBER() 函数从 1 开始,为每一条分组记录返回一个数字。 示例...

    oracle分析函数row_number() over()使用

    第二步,我们添加row_number() over(partition by outer_code order by outer_code)来标识重复记录,这将为同一`outer_code`下的每一行分配一个唯一的行号。第三步,我们可以利用这个行号来删除重复数据,只保留每组...

    oracle row_number用法

    ROW_NUMBER() OVER (PARTITION BY <column_list> ORDER BY <order_by_expression>) ``` - **PARTITION BY**:用于指定按照哪些列进行分组。 - **ORDER BY**:用于指定如何对分组内的行进行排序。 #### 三、Row_...

    row_number.rar_SQL中row_number用法_number

    SELECT ROW_NUMBER() OVER (ORDER BY column_name(s)) AS row_num, other_columns FROM table_name; ``` 其中,`OVER`子句定义了排序的逻辑窗口,`ORDER BY`子句则指定排序的依据。`column_name(s)`是你想要按照...

    oracle的row_numer()函数的使用

    介绍了 row_number() over(order by column asc) 函数和 row_number() over(partition by column1 order by column2 asc) 的使用实例和方法

    sqlserver巧用row_number和partition by分组取top数据

    ROW_NUMBER() OVER (PARTITION BY column_name(s) ORDER BY column_name(s)) ``` 在这个增强的语法中,`PARTITION BY` 子句根据指定的列将数据集分割成多个子集,然后在每个子集中独立地应用 `ORDER BY` 子句来确定...

    深入探讨:oracle中row_number() over()分析函数用法

    row_number() over (order by rownum) as row_number from emp; ``` 在这个例子中,`row_number()`函数返回的序号与`rownum`列的值相同,但它们的计算方式不同。`rownum`是在查询结果产生后添加的,而`row_number...

    SQL Server中row_number函数的常见用法示例详解

    select *,row_number() over(partition by column1 order by column2) as n from tablename 在上面语法中: PARTITION BY子句将结果集划分为分区。 ROW_NUMBER()函数分别应用于每个分区,并重新初始化每个分区的...

    sqlserver2005使用row_number() over分页的实现方法

    ROW_NUMBER() OVER (ORDER BY a.CreateTime DESC) AS RowNumber FROM table_name AS a ) SELECT * FROM CTE WHERE RowNumber BETWEEN @startIndex AND @endIndex ORDER BY RowNumber; ``` 在这个例子中,`CTE`...

    SQL2005利用ROW_NUMBER() OVER实现分页功能

    ROW_NUMBER() OVER (ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...) ``` 这里的column1, column2等是你希望用来排序的列,ASC表示升序,DESC表示降序。 接下来,我们来看一个实例。假设我们有一个名为`...

    SQL中distinct 和 row_number() over() 的区别及用法

    SELECT name, age, ROW_NUMBER() OVER(PARTITION BY age ORDER BY name) AS row_num FROM table_name; ``` 综上所述,`DISTINCT`和`ROW_NUMBER() OVER()`在SQL中各有其独特的作用,前者用于简单去重,后者用于更...

    hive分析函数

    ROW_NUMBER() OVER (PARTITION BY column_name ORDER BY column_name) 例如,我们可以使用 ROW_NUMBER 函数对数据进行排序,并返回每行数据的行号: SELECT cookieid, createtime, pv, ROW_NUMBER() OVER...

    oracle分析函数

    ROW_NUMBER() OVER (PARTITION BY <partition_column_list> ORDER BY <order_column_list>) ``` - **PARTITION BY** 子句:将数据集分割成多个分区,每个分区内的行独立进行编号。 - **ORDER BY** 子句:确定每个...

    oracle统计函数.pdf

    其基本语法为row_number() over ([partition by column_name] order by column_name)。在这个语法中,partition by是可选的,用于将数据集分为几个部分,然后对每个部分进行排序和编号;order by是必须的,用于指定...

    SQL Server 2005 提供了4个行号排序函数

    SELECT ROW_NUMBER() OVER (PARTITION BY column1 ORDER BY column2) AS row_num, ... ``` **示例**: 假设有一个名为 `tms` 的表,包含 `id` 和 `name` 字段,我们想要获取第 11 行到第 20 行的数据: ```sql ...

    一个Oracle分页的存储过程

    ROW_NUMBER()可以结合OVER()子句使用,允许在PARTITION BY和ORDER BY子句中指定分组和排序规则。示例如下: ```sql WITH paged_data AS ( SELECT t.*, ROW_NUMBER() OVER (ORDER BY some_column) rnum FROM your_...

    oracle字段去重

    SELECT column_name, ROW_NUMBER() OVER (PARTITION BY column_name ORDER BY some_column) AS row_num FROM table_name ) t WHERE row_num = 1; ``` **示例:** 以下是一个具体的例子,根据提供的部分代码: `...

    oracle分组排序统计高级用法

    RANK() OVER (PARTITION BY <column_list> ORDER BY <sort_column>) ``` - **示例**: 假设有表`students`包含学生姓名`name`、学科`subject`和成绩`score`,我们想要找出每个学科的前三名成绩。 ```sql ...

Global site tag (gtag.js) - Google Analytics