oracle 表同一列只取最新一条数据写法

sql 复制代码
select * 
  from (select t.*,
  row_number() over(partition by 去重列名 order by 排序列名 desc) as rn
  from 表名)
 where rn=1
1.row_number() over(....):

为每条数据分配一个行号,1.2.3....这样的

2.partition by :

以某列作为分组,每个分组行号从1开始,往下递增

3.order by 排序列名

分组后,按自定义规则进行排序后再分配行号,这样取行号rn=1,就是最新的一条数据

相关推荐
逝水如流年轻往返染尘15 分钟前
MySQL中的内置函数
数据库·mysql
咖啡啡不加糖36 分钟前
深入理解MySQL死锁:从原理、案例到解决方案
java·数据库·mysql
文牧之37 分钟前
PostgreSQL 的扩展pageinspect
运维·数据库·postgresql
要努力啊啊啊1 小时前
使用 Python + SQLAlchemy 创建知识库数据库(SQLite)—— 构建本地知识库系统的基础《一》
数据库·人工智能·python·深度学习·自然语言处理·sqlite
KENYCHEN奉孝1 小时前
Django CMS 的 Demo
数据库·sqlite
为中华崛起而奋斗1 小时前
Oracle 19c RAC集群ADG搭建
数据库·oracle
betazhou2 小时前
mariadb5.5.56在centos7.6环境安装
android·数据库·adb·mariadb·msyql
开挖掘机上班2 小时前
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
数据库·mysql
花月C2 小时前
Mysql-定时删除数据库中的验证码
数据库·后端·mysql·spring