问题描述
这是表 (achievements_t):
id Primary int(11) AUTO_INCREMENT
timestamp current_timestamp()
user_id varchar(34)
level varchar(40)
score int(11)
replay mediumblob
现在对于每个级别和特定的 user_id,我想要两个数字,一个位置,两个总条目。
“LevelX 你在 54 个中的第 12 个”
我怎样才能做到这一点?
解决方法
WITH cte AS (
SELECT *,ROW_NUMBER() OVER (PARTITION BY level ORDER BY score desc) rn
FROM achievements_t)
)
SELECT cte.user_id,cte.level,cte.rn as userPlace,sum(t.score) as totalEntry
FROM cte cte inner join achievements_t t
WHERE
t.user_id=cte.user_id
group by user_id,level