对mysql数据表中的某一字段进行排名
1.原始的表数据如下图。done_seconds为完成的时间,需求为根据该字段来对每条数据进行排名。

2.输入以下SQL语句:
SELECT A.*,@rank:=@rank+1 AS pm FROM (SELECT * FROM task_news_user_done_list ORDER BY done_seconds) A, (SELECT @rank:=0) B

3.执行该条语句后,查询出来的结果中,加入了pm字段。该字段的值就是根据done_seconds进行排序的结果。注意,升序,降序的问题。

4.除了单个字段外,还可以对平均值进行排序。如对上表中相同user_email的done_seconds的平均值进行排序,可用以下sql语句:
SELECT A.*,@rank:=@rank+1 AS pm FROM (SELECT user_email, AVG(done_seconds) AS done_seconds FROM task_news_user_done_list GROUP BY user_email ORDER BY done_seconds) A, (SELECT @rank:=0) B

NameGPT名称生成器
免费AI公司名称生成器,AI在线生成企业名称,注册公司名称起名大全。
0 查看详情
5.排序后结果如下图。此时的排名就是所有相同user_email的done_seconds进行的平均值排名。

6.当然还可以根据需要加入where等限制条件。如下图。
觉得有用的点下赞。

以上就是mysql中关于排名函数的具体介绍的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/394975.html
微信扫一扫
支付宝扫一扫