当前位置: 首页 > news >正文

窗口函数row_number() OVER()对每个组内的行按照特定条件进行编号

Oracle或PostgreSQL中, row_number() OVER()是一个窗口函数,用于为查询结果集中的每一行分配一个唯一的行号,这是基于该行在排序后的结果集中所处的位置。这个函数特别适用于分组聚合数据时,需要对每个组内的行按照特定条件进行编号

语法:

ROW_NUMBER() OVER (
[PARTITION BY column1, column2 ...]
ORDER BY sort_column1 [ASC|DESC], sort_column2 [ASC|DESC] ...
)


PARTITION BY子句可选,用于将数据分为多个分区(每个分区内部独立计数),常用于按分组计算行号。
ORDER BY指定了排序依据,确定行号的顺序。

例如:

select user_id, user_name, dept_id FROM t_user t

where t.dept_id in('1910','1734','2891') ORDER BY dept_id;

SELECT user_id, user_name, dept_id,

ROW_NUMBER() OVER (PARTITION BY dept_id ORDER BY user_id DESC) as rank

FROM t_user t

where t.dept_id in('1910','1734','2891');


 

http://www.xdnf.cn/news/355987.html

相关文章:

  • 40. 组合总和 II
  • c++:迭代器(Iterator)
  • 【软件测试】测试用例的设计方法
  • Kafka集群加入新Broker节点会发生什么
  • 在Cline上调用MCP服务之MCP实践篇
  • Vue Baidu Map
  • 学习记录:DAY28
  • Xcode16.3配置越狱开发环境
  • 武汉火影数字|数字科技馆打造:开启科技探索新大门
  • 深入理解 Java 代理模式:从基础到实战​
  • BP神经网络
  • 【PmHub后端篇】PmHub整合TransmittableThreadLocal (TTL)缓存用户数据
  • Python代码编程基础
  • 使用JMETER中的JSON提取器实现接口关联
  • onResume()和 onPause()的触发条件
  • 7、三维机械设计、装配与运动仿真组件 - /设计与仿真组件/3d-mechanical-designer
  • c/c++的Libevent 和OpenSSL构建HTTPS客户端详解(附带源码)
  • 基于设备指纹识别的反爬虫技术:给设备办 “身份证”
  • 【MySQL】-- 事务
  • 机器学习之数据转换策略
  • Java 23种设计模式 - 结构型模式7种
  • 数据库故障排查指南
  • React+Taro选择日期组件封装
  • 51c自动驾驶~合集40
  • 新品:同等小体积通信距离翻一倍-RF3060F27通信模块
  • Vmware 最新下载教程和安装教程,外带免下载文件
  • project从入门到精通(四)
  • idea spring boot 打包成可执行的 JAR包
  • 使用docker安装Dinky
  • `timescale 1ns/1ps的意义