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

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

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