在Hive

时间:2018-03-12 03:15:58

标签: hive hql partition-by

我试过像

这样的东西
select * from table_name
group by column1
Order by column2 desc;

但它不起作用,因为你应该把所有选中的列放在group by语句中。

是否有像

这样的东西
for each partition
*do something*

在蜂巢中? 谢谢。

编辑:column1是制作分区的列

1 个答案:

答案 0 :(得分:0)

我们通常会对此类情况使用ROW_NUMBER()

SELECT a.col1
    ,a.col2
    ,a.col3  --Other columns
FROM (
    SELECT t.*
        ,ROW_NUMBER() OVER ( PARTITION BY column1
    ORDER BY column2 DESC
    ) AS rn
FROM table_name t ) a
WHERE rn >= n -- filter based on rn to get top n rows for each partition.