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

相关推荐
NaZiMeKiY28 分钟前
SQLServer数据分页
数据库·sql·sqlserver
Python私教31 分钟前
Python国产新 ORM 框架 fastzdp_sqlmodel 快速入门教程
java·数据库·python
孟章豪33 分钟前
SQL Server全方位指南:从入门到高级详解
数据库
数分大拿的Statham34 分钟前
PostgreSQL中的regexp_split_to_table函数详解,拆分字段为多行
大数据·数据库·postgresql·数据分析·数据清洗
mqiqe35 分钟前
PostgreSQL主备环境配置
数据库·postgresql
mqiqe37 分钟前
PostgreSQL 容器安装
数据库·postgresql
小光学长1 小时前
基于vue框架的宠物寻回小程序8g7el(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
数据库
一叶飘零_sweeeet1 小时前
深入理解 MySQL MVCC:多版本并发控制的核心机制
数据库·mysql
中文很快乐1 小时前
springboot结合p6spy进行SQL监控
java·数据库·sql
小电玩1 小时前
谈谈你对Spring的理解
java·数据库·spring