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

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

相关推荐
计算机安禾12 小时前
【数据库系统原理】第9篇:SQL的结构化思维:DDL、DML与DCL的职责分离
数据库·sql·oracle
计算机安禾13 小时前
【数据库系统原理】第12篇:视图机制:外模式在SQL层级的逻辑数据独立性实现
数据库·sql·oracle
前进的李工13 小时前
MySQL性能优化:索引与子查询实战技巧
数据库·sql·mysql·性能优化
疯狂成瘾者13 小时前
API Key 生成和鉴权机制:从随机凭证生成到请求拦截校验
数据库·oracle
Volunteer Technology13 小时前
SpringSecurity中的权限管理
java·数据库·servlet
镜舟科技13 小时前
镜舟科技出席 HPE 新品发布会,携手打造“Lakehouse + AI”智能数据底座
starrocks·数据分析·ai agent·lakehouse·hpe
段ヤシ.13 小时前
回顾Java知识点,面试题汇总Day13:数据库MySQL(持续更新)
java·数据库·mysql
mN9B2uk1713 小时前
在Qt中使用SQLite数据库
数据库·qt·sqlite
network_tester14 小时前
SENT/PSI5传感器TSN集成测试:打通传统传感与未来车载网络的“最后一公里”
数据库·网络协议·tcp/ip·自动驾驶·信息与通信·信号处理·tcpdump
桌面运维家14 小时前
校园机房vDisk IDV云桌面建设方案价格参考
linux·服务器·数据库