gpt4 book ai didi

mysql - 查询以对分组项目进行排名?

转载 作者:行者123 更新时间:2023-11-29 14:00:45 25 4
gpt4 key购买 nike

我有一个针对不同用户的点击表:

HITS:
id | userid
1 | 1
2 | 1
3 | 2
4 | 1
5 | 2
6 | 2

我想要以最快的方式获取按 ID 排名的这些项目的列表。所以这个:

HITS RANKED:
id | userid | ranks
1 | 1 | 1
2 | 1 | 2
3 | 2 | 1
4 | 1 | 3
5 | 2 | 2
6 | 2 | 3

我想避免将两个表相互连接,因为当表变大时,这会花费很长时间。还有其他建议吗?

最佳答案

SELECT  ID, 
UserID,
Ranks
FROM
(
SELECT id,
userid,
@group:=CASE WHEN @temp <> userid THEN 1 ELSE @group+1 END AS ranks,
@temp:=userid AS clset
FROM (SELECT @group:= 0) s,
(SELECT @temp:= 0) c,
(SELECT * FROM hits ORDER BY userid, id) t
) x
ORDER BY ID

关于mysql - 查询以对分组项目进行排名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15107682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com