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,就是最新的一条数据

相关推荐
技术宝哥1 小时前
Redis(2):Redis + Lua为什么可以实现原子性
数据库·redis·lua
学地理的小胖砸3 小时前
【Python 操作 MySQL 数据库】
数据库·python·mysql
dddaidai1233 小时前
Redis解析
数据库·redis·缓存
数据库幼崽3 小时前
MySQL 8.0 OCP 1Z0-908 121-130题
数据库·mysql·ocp
Amctwd3 小时前
【SQL】如何在 SQL 中统计结构化字符串的特征频率
数据库·sql
betazhou4 小时前
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL
linux·数据库·mysql·oracle·ogg
lyrhhhhhhhh4 小时前
Spring 框架 JDBC 模板技术详解
java·数据库·spring
喝醉的小喵6 小时前
【mysql】并发 Insert 的死锁问题 第二弹
数据库·后端·mysql·死锁
付出不多6 小时前
Linux——mysql主从复制与读写分离
数据库·mysql
初次见面我叫泰隆6 小时前
MySQL——1、数据库基础
数据库·adb