hive获取最小1列并保留所有其他列

xzv2uavs  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(291)

我在用Hive。假设我有一个要选择的列日志(userid、time、descripe) userID , min(time) ,按userid从日志组进行描述。有什么办法我可以用Hive一步完成吗?当我想到 mapreduce <key, value> 算法方面,但我有这么多的文件,还有一个步骤,所以导致我的问题。
例子:

(userID, time, describe) = {(1, 2, 2), (2, 3, 3), (1, 1, 1), (1, 3, 3), (2, 1, 1)}

我期望的是:

(userID, time, describe) = {(1, 1, 1), (2, 1, 1)}
46scxncf

46scxncf1#

可以通过调整cte和窗口函数的秩来实现。
ie公司

with result as
    (
        select userID, 
              time,
              describe ,
              rank() OVER (PARTITION BY userID ORDER BY time asc)  as rnk
        from Log
    )
    select userID,
       time, 
       describe
    from result where rnk =1

相关问题