【发布时间】:2019-08-01 12:42:42
【问题描述】:
我在 hive 数据库中有一个包含 3 列的表:
用户 日期 刷新时间
我想查询我将在第一步中获得的用户的 max(date) 和 max(refresh_time) 的 max(date)。我可以通过几个步骤(通过创建额外的表)来完成它,但是我希望有一个查询。如何正确地做到这一点?
【问题讨论】:
我在 hive 数据库中有一个包含 3 列的表:
用户 日期 刷新时间
我想查询我将在第一步中获得的用户的 max(date) 和 max(refresh_time) 的 max(date)。我可以通过几个步骤(通过创建额外的表)来完成它,但是我希望有一个查询。如何正确地做到这一点?
【问题讨论】:
使用窗口函数:
select t.*
from (select t.*,
row_number() over (partition by user order by date desc, refresh_time desc) as seqnum
from t
) t
where seqnum = 1;
【讨论】: