首页 > 解决方案 > Hive / SQL 查询每个键的前 n 个值

问题描述

我想要每个键的前 2 个值。结果将如下所示:

在此处输入图像描述

应该是什么蜂巢查询。

标签: sqlhivehqlhiveql

解决方案


您可以使用带有OVER () 关闭的窗口函数:

select col1,col2 from (SELECT col1,
col2, 
ROW_NUMBER() OVER (PARTITION BY col1 ORDER BY col2 DESC) AS row_num
FROM data)f
WHERE f.row_num < 3
order by col1,col2

推荐阅读