我有3个表A,B常见的东西是tweeetId,在两个表中的account_id我想加入A和B,因为我已经查询了一个
Select created_date, tweet_text, user_description
from A inner join
B
on A.tweetId = B.tweetId and A.account_id = B.accountid;
我想在加入B后获取最新的created_date,然后将最新创建的日期与C的最新创建日期进行比较。所以目标是每次查询运行时我需要在A中存在的最新推文的条件下将数据插入到C中,并且B必须转储到C中。
答案 0 :(得分:0)
要按日期获取最新推文,请使用row_number()函数。 像这样:
insert overwrite C --or insert into
select * from
(
select created_date, tweet_text, user_description
row_number() over(partition by weetId, account_id order by created_date desc) as rn,
tweetId, account_id --PK
from A inner join
B
on A.tweetId = B.tweetId and A.account_id = B.accountid
)s
where s.rn=1; --take the latest