SQL> select * from (
2 select name,rank() over(partition by name order by date desc) rk,date,amount
3 from tablename
4 )
5 where rk<=1
6 /
2 select name,rank() over(partition by name order by date desc) rk,date,amount
3 from tablename
4 )
5 where rk<=1
6 /
(
select name,row_number() over(partition by name order by date desc nulls last) rn,date,amount from tablename
)
where rn<=1
都是我从未见过的东西,能帮解释一下吗?谢谢!
function_name--函数名
(<arguement>,<arguement1>......)--分析函数的参数
OVER--标识分析函数
(<partition-clause>--可选的分区子句
<order-by-clause>)--排序子句
具体rank函数与row_number函数,可以在具体介绍分析函数的资料中去看看select * from table where (name,date)in
(
select name,max(date) from table group by name)
over() partition by name 是根据名字分组排序