数据去重经常需要写row_number 函数来进行去重,下面来介绍一种精简写法
1、常见用法
select id
,time
from
(
select id
,time
,row_number over(partition by id order by time desc) fn
from table_a
)
where fn =1
2、精简写法
select id
,time
from table_a
qualify row_number over(partition by id order by time desc) =1
通过第二步的写法,我们可以只需要在末尾加上qualify 函数来进行开窗去重,1方法和2方法是一样的效果,原理是差不多的,只是在sql的写法上,sql代码量越少,维护成本越低。