SQL查询获取Apache配置单元上有序列表的顶部元素

SQL查询获取Apache配置单元上有序列表的顶部元素,sql,hive,Sql,Hive,我在SQL数据库中有下表 user rating 1 10 1 7 1 6 1 2 2 8 2 3 2 2 2 2 我只想保留用户最好的两个评级,以获得: user rating 1 10 1 7 2 8 2 3 SQL查询将如何实现这一点?我不知道怎么做。它会起作用的 ;with cte as (select user,rating, row_number() over (partition by user order by rating desc) maxval from yourta

我在SQL数据库中有下表

user rating
1 10
1 7
1 6
1 2
2 8
2 3
2 2
2 2
我只想保留用户最好的两个评级,以获得:

user rating
1 10
1 7
2 8
2 3
SQL查询将如何实现这一点?我不知道怎么做。

它会起作用的

;with cte as
(select user,rating, row_number() over (partition by user order by rating desc) maxval
 from yourtable)

select user,rating
from cte
where maxval in (1,2)

mysql或postgres不是都在Hive上。这是针对postgres的,如果它在Hive上运行,或者如何转换它我不知道选择用户,从选择用户开始分级,分级,分区上的行数按用户顺序按分级DESC as rn FROM t as x,其中rn