我有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中。
最佳答案
要按日期获取最新推文,请使用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
关于hadoop - 通过使用Hive将2个表连接到C中来存储最新的tweet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40275229/