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

相关推荐
源代码•宸24 分钟前
MySQL 索引:索引为什么使用 B+树?(详解B树、B+树)
数据结构·数据库·经验分享·b树·mysql·b+树·b-树
睡觉的时候不会困1 小时前
MySQL 数据库表操作与查询实战案例
数据库·mysql
秋已杰爱2 小时前
Redis常见命令
数据库·redis·缓存
一个有梦有戏的人2 小时前
软考架构师:数据库的范式
数据库·oracle
stray小书童3 小时前
neo4j数据库实战
数据库·neo4j
时序数据说3 小时前
时序数据库为什么选IoTDB?
大数据·数据库·物联网·开源·时序数据库·iotdb
{⌐■_■}4 小时前
【MongoDB】简单理解聚合操作,案例解析
数据库·线性代数·mongodb
zuozewei5 小时前
MySQL高可用改造之数据库开发规范(大事务与数据一致性篇)
数据库·mysql·数据库开发
THXW.6 小时前
【Java项目与数据库、Maven的关系详解】
java·数据库·maven
DONG9138 小时前
关系型数据库:原理、演进与生态全景——从理论基石到云原生的深度巡礼
数据库·sql·mysql·database