采用 row_number() over 函数,但是Hive和kylin之间写法是有区别的
Hive的取数是这样的:
select t.customerid,t.tagid from
(select *,row_number() over (partition by customerid,tagid order by time desc) num
from dm.DM_TAG2CUSTOMER) t where t.num=1 and t.insert_or_delete=1
Kylin的取数是这样的:
select t.customerid,t.tagid from
(select *,row_number() over (partition by customerid,tagid order by createtime desc) num
from dm.DM_TAG2CUSTOMER) t inner join (select 1 a) s
on t.num=s.a where t.insert_or_delete=1