0

我尝试了类似的东西

select * from table_name
group by column1
Order by column2 desc;

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

有没有类似的东西

for each partition
*do something*

在蜂巢中?谢谢。

编辑: column1 是在其上进行分区的列

4

1 回答 1

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.
于 2018-03-12T05:50:38.303 回答