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

相关推荐
瀚高PG实验室14 小时前
Oracle或DM(达梦)时间戳之间的差值SQL迁移到瀚高数据库
数据库·sql·oracle·瀚高数据库
货拉拉技术15 小时前
货拉拉RAG优化实践:从原始数据到高质量知识库
数据库·算法
张较瘦_15 小时前
数据库|数据库设计范式:用“宠物管理系统“讲透1nf 2nf 3nf的关键逻辑
数据库·开发
源来猿往15 小时前
并发之锁介绍
数据库
曹牧15 小时前
Oracle:“列不能外部关联到子查询”
数据库·sql
档案宝档案管理15 小时前
核心功能揭秘——档案管理系统如何破解档案管理难题?
大数据·数据库·安全·档案·档案管理
Databend15 小时前
如何打造AI时代的数据基石 | Databend Meetup 上海站回顾
数据库
wudl556616 小时前
向量数据库--FAISS
数据库·faiss
冲的运维日常16 小时前
Redis:查看RDB文件内容
数据库·redis·缓存
艾体宝IT16 小时前
艾体宝干货 | Redis Java 开发系列#1 从零开始的环境搭建与实践指南
数据库