我试过类似的方法
select * from table_name group by column1 Order by column2 desc;
但它不起作用,因为您应该将所有选定的列放在GROUPBY语句中。有什么类似的吗
for each partition * do something*
在 hive 里?谢谢。编辑:column1是在其上进行分区的列
9avjhtql1#
我们通常使用 ROW_NUMBER() 对于这种情况。
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.
1条答案
按热度按时间9avjhtql1#
我们通常使用
ROW_NUMBER()
对于这种情况。