由于我不具备SQL技能,因此我在这里面临着一个大问题。
我实际上有这张桌子。
我想在每个级别上对用户进行排名,
然后我可以在每个级别上添加每个用户的每个等级,以进行全局排名。
我对MySQL很陌生,所以我想知道一个SELECT查询是否可能。
谢谢。
答案 0 :(得分:0)
在MySQL 8.x中,您可以使用RANK()
或DENSE_RANK()
函数来执行所需的操作。例如:
with
a as (
select
level, user, score,
rank() over(partition by level order by score) as rk
from t
),
r as (
select
user,
sum(rk) as score
from a
group by user
)
select
rank() over(order by score),
user, score
from r
注意:您的预期结果有点令人困惑,因此一旦回答我提出的问题,您可能需要调整此查询。