oracle数据库排序后如何获取第一条数据(oraclesql排序取第一条)不看后悔

随心笔谈9个月前发布 admin
251 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章介绍了如何在Oracle中通过排序获取特定行的数据,以及如何在分组后获取每组的第一条数据。文章内容包括以下核心要点: 1. **排序后获取第一条数据** 使用`ORDER BY`语句对结果集进行排序后,通过`FETCH FIRST 1 ROW`或`ROWNUM=1`的方式获取排序后的第一条数据。 2. **分组后获取每条数据的第一条** 使用`ROW_NUMBER()`窗口函数,结合`PARTITION BY`和`ORDER BY`,可以在分组后获取每组中的第一条数据。 3. **自定义窗口函数实现** 通过自定义的`ROW_NUMBER()`窗口函数,可以实现以下逻辑: ```sql SELECT * FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) AS rn, test1.* FROM test1 ) t WHERE rn = 1; ``` 文章总结了ORACLE中排序与分组的基本操作,并分享了通过`ROW_NUMBER()`函数实现更复杂的分组排序需求的经验。这些方法适用于需要按特定顺序或分组后获取第一行数据的场景。



目录oracle排序后如何获取第一条数据场景实现oracle分组后获取每组数据第一条数据总结

想要获取下列sql的数据的第一条

select NEXT_FOLLOWUP_DATE
from PH_CHILD_HEALTH_EXAM
where person_info_id=’3afc119ab460497d85f59b1e135ea6b1′
order by followup_Visit_Date desc

在这里插入图片描述

select NEXT_FOLLOWUP_DATE
from (select NEXT_FOLLOWUP_DATE
from PH_CHILD_HEALTH_EXAM
where person_info_id=’3afc119ab460497d85f59b1e135ea6b1′
and is_Cancel=0
order by followup_Visit_Date desc)
where rownum=1;

在这里插入图片描述

[sql]
SELECT * ? ?
? ?FROM (SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) rn, ? ?
? ? ? ? ?test1.* ? ?
? ? ? ? ?FROM test1) ? ?
? WHERE rn=1 ?;

此sql代表按照字段x进行分组,按照字段y倒序排序,取每个分组中的第一条数据。

其中 partition by 是指的是要进行分组的字段。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:oracle数据排序后获取前几行数据的写法(rownum、fetch方式)Oracle数据库中对null值的排序及mull与空字符串的区别Oracle数据库中ORDER BY排序和查询按IN条件的顺序输出Oracle中简单查询、限定查询、数据排序SQL语句范例和详细注解

© 版权声明

相关文章