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