gpt4 book ai didi

mysql - 根据计数对用户进行排名

转载 作者:行者123 更新时间:2023-11-29 08:09:43 24 4
gpt4 key购买 nike

如何根据列 num 来对用户进行排名,列 num 是用户在表中存在的次数。此外,如果 2 个用户具有相同的计数,则应给予最高排名的用户小于下面的用户,例如:用户 1 和 2 的计数为 3那么用户 1 的排名为 1,用户 2 的排名为 3,如果有新用户 3 的计数为 1,则用户 3 的排名为 3。

我该怎么做?我真的很感谢任何帮助。提前致谢。

http://sqlfiddle.com/#!2/a9188/2

CREATE TABLE if not exists tblA
(
id int(11) NOT NULL auto_increment ,
user varchar(255),
category int(255),
PRIMARY KEY (id)
);


INSERT INTO tblA (user, category ) VALUES
('1', '1'),
('1', '2'),
('1', '3'),
('1', '1'),
('2', '1'),
('2', '1'),
('2', '1'),
('2', '1'),
('3', '1'),
('2', '1');

类似响应:搜索“1”所在的类别

user  category    count    rank

1 1 2 1
2 1 2 2

使用的查询:

SELECT USER,
category,
count(*) AS num
FROM tblA
WHERE category=1
GROUP BY USER,
category
ORDER BY num DESC;

最佳答案

例如,使用子查询:

SELECT
groups.*,
@rank:=@rank+1 AS rank
FROM
(select
user,
category,
count(*) as num
from
tblA
where
category=1
group by
user,
category
order by
num desc,
user) AS groups
CROSS JOIN (SELECT @rank:=0) AS init

-检查您修改后的demo .

关于mysql - 根据计数对用户进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21882683/

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