ORACLE多列中取出数据最大的一条

1.需求说明:

当查询出来的数据存在多条数据时,想按照一定条件排序取出其中一条数据。

2.使用函数:

row_number() over( partition by 分组字段 order by 排序字段 desc)

3.示例:

--根据table_a中的pk_house,pk_customer进行分组,然后根据table_b.billdate进行排序,取出最大billdate的一条数据

select *
from (select table_a.code,
table_a.name,
table_b.billdate,
row_number() over(partition by table_a.pk_house, table_a.pk_customer order by table_b.billdate desc) rn
from table_a
left join table_b
on table_b.pk_table_a = table_a.pk_table_a
where table_a.code = '11111')
where rn = 1

相关推荐
Cat God 00725 分钟前
SQL使用及注意事项
数据库·sql·mysql
@老蝴1 小时前
MySQL数据库 - 约束和联合查询
android·数据库·mysql
程序猿20231 小时前
MySQL索引使用--最左前缀法则
数据库·mysql
老华带你飞1 小时前
列车售票|基于springboot 列车售票系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习·spring
IvorySQL1 小时前
PostgreSQL 中的“脏页(Dirty Pages)”是什么?
数据库·postgresql·开源
咖啡の猫2 小时前
Python字典的查询操作
数据库·python·c#
这儿有一堆花2 小时前
2025 年免费指纹浏览器清单
数据库
czhc11400756633 小时前
c# 1213
开发语言·数据库·c#
voltina3 小时前
【SQL】【事务】
数据库·sql
古渡蓝按4 小时前
PostgreSQL数据库在Windows上实现异地自动备份指南-喂饭图文教程
数据库