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

本文介绍如何在SQL查询中使用row_number()函数,根据table_a的pk_house和pk_customer字段以及table_b的billdate字段进行分组并按降序排序,以获取每个组的最大billdate对应的记录。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值