本文摘自PHP中文网,作者黄舟,侵删。
对MySQL数据表中的某一字段进行排名
1.原始的表数据如下图。done_seconds为完成的时间,需求为根据该字段来对每条数据进行排名。

2.输入以下SQL语句:
1 | 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语句:
1 2 3 | 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
|

5.排序后结果如下图。此时的排名就是所有相同user_email的done_seconds进行的平均值排名。

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

以上就是mysql中关于排名函数的具体介绍的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
怎么修改mysql的默认端口号
索引是什么?
mysql用户变量与set语句示例详解
mysql创建和删除表操作命令实例讲解
navicat如何查看mysql的操作记录
mysql navicat怎么删除数据库
django数据库自动重连的方法教程
连接mysql报1045错误怎么办
mysql 的 join 功能弱爆了?
b树和哈希索引的比较(代码示例)
更多相关阅读请进入《mysql》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » mysql中关于排名函数的具体介绍