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

相关推荐
做梦敲代码25 分钟前
达梦数据库-读写分离集群部署
数据库·达梦数据库
dingdingfish44 分钟前
JSON 系列之1:将 JSON 数据存储在 Oracle 数据库中
oracle·json·database
小蜗牛慢慢爬行1 小时前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate
hanbarger1 小时前
nosql,Redis,minio,elasticsearch
数据库·redis·nosql
微服务 spring cloud2 小时前
配置PostgreSQL用于集成测试的步骤
数据库·postgresql·集成测试
先睡2 小时前
MySQL的架构设计和设计模式
数据库·mysql·设计模式
弗罗里达老大爷2 小时前
Redis
数据库·redis·缓存
仰望大佬0072 小时前
Avalonia实例实战五:Carousel自动轮播图
数据库·microsoft·c#
学不透java不改名2 小时前
sqlalchemy连接dm8 get_columns BIGINT VARCHAR字段不显示
数据库