oracle rownum分页出现重复数据

oracle rownum分页出现重复数据的情况:

一般情况是分组的字段不唯一导致的

解决办法:

原始sql:(错误的)

复制代码
SELECT *
 FROM (
 SELECT a.*, ROWNUM r
 FROM hospital_inpatient_medication a
 WHERE  TO_CHAR(discharge_date,'YYYY-MM-DD HH24:MI:SS') BETWEEN '2024-01-01 00:00:00' AND '2024-02-01 00:00:00'
 AND  ROWNUM <= 500
 ORDER BY discharge_date asc 
)
WHERE r >= 1

改进:(正确的)

复制代码
select *
from (
select row_.*, rownum rownum_
from ( select * from hospital_inpatient_medication
WHERE TO_CHAR(discharge_date,'YYYY-MM-DD HH24:MI:SS') BETWEEN '2024-02-01 00:00:00' AND '2024-03-01 00:00:00'
order by discharge_date asc, id asc )
row_ where rownum <= 5000) b
where b.rownum_ >=1

思路:就是加个唯一键分组

相关推荐
Suchadar22 分钟前
数据库DATABSE——sql server
数据库
檀越剑指大厂1 小时前
迁移之路的隐形陷阱:破解Oracle数据库国产化替代的核心痛点与策略
数据库·oracle
wWYy.1 小时前
详解redis(1)
数据库·redis·缓存
todoitbo1 小时前
Oracle 迁移到 KingbaseES:从问题词到成本的技术拆解
数据库·oracle·kingbasees
会游泳的石头2 小时前
Java 异步事务完成后的监听器:原理、实现与应用场景
java·开发语言·数据库
数智工坊2 小时前
【操作系统-IO调度】
java·服务器·数据库
星梦清河2 小时前
MySQL—分组函数
数据库·mysql
智航GIS2 小时前
11.18 自定义Pandas扩展开发指南:打造你的专属数据分析武器库
python·数据分析·pandas
霖霖总总2 小时前
[小技巧33]MySQL 事务持久化的一致性保障:binlog 与 redo log 的两阶段提交机制解析
数据库·mysql
九章-3 小时前
2026国产向量数据库选型新趋势:融合架构如何支撑AI与信创双轮驱动
数据库·向量数据库