在ORACLE中,group by 的字段必须要与非聚合函数的字段一致,这就导致不能获取到只针对某个字段做分组的需求,这时候可以使用 分析函数 row_number() over(partition by 分组字段 order by 排序字段)
先把要的数据查询到第一位,再把分组后的第一条数据取出就可以了
select
*
from
(
select
*,
row_number() over(partition by id
order by
id desc) rn
from
test
) a
where
a.rn = 1
这样就可以了