mysql的排名函数怎么用_mysql中关于排名函数的具体介绍

对MySQL数据表中的某一字段进行排名

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

ebd033b49ea12e6ce96bc77bb2b6ba35.png

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

d78a8c235fc7c1996d648208de42de0c.png

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

2b15e944d3db7c60c983112c2977608d.png

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

bad9d44c233d34f697e6b47603ede6be.png

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

8f8e1a7ab8198cb3acba97042539940d.png

6.当然还可以根据需要加入where等限制条件。如下图。

觉得有用的点下赞。

95bfd98f1099566972cb72a6a7405c78.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值