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

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

相关推荐
arronKler12 分钟前
大数据量高并发的数据库优化
服务器·数据库·oracle
祖传F8736 分钟前
SQL DATE()函数会抹去时间戳
数据库·sql
untE EADO37 分钟前
在 MySQL 中使用 `REPLACE` 函数
android·数据库·mysql
Absurd58741 分钟前
Redis如何限制列表最大长度_利用LTRIM指令截断List保留最新记录
jvm·数据库·python
2401_8822737241 分钟前
SQL函数面试题解析_函数性能与设计考点
jvm·数据库·python
l1t43 分钟前
DeepSeek总结的DuckDB internals 的 设计与实现 (DiDi)
数据库·duckdb
a9511416421 小时前
mysql查询分析中如何快速识别全表扫描_通过EXPLAIN中的type列检查
jvm·数据库·python
coNh OOSI1 小时前
Redis——Windows安装
数据库·windows·redis
weixin_424999361 小时前
mysql如何防止索引被错误使用_mysql查询计划强制约束
jvm·数据库·python
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.1 小时前
Redis主从复制配置全攻略
数据库·redis·笔记