• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL 查询排行_mysql

mysql 搞代码 7年前 (2018-06-08) 210次浏览 已收录 0个评论

mysql 查询排名

参考:http://fellowtuts.com/mysql/query-to-obtain-rank-function-in-mysql

 

前段时间看到个帖子,是关于用 SQL 查询排名的。
那个帖子里针对的数据库是 Oracle,用到了 Oracle 自带的函数 RANK(或 DENSE_RANK)。
由于 MySQL 里没有相应的类似函数,所以写 SQL 会稍微繁琐一点。

参考文章的主要思路:

  • 对目标列排序
  • 设置一个变量作为排名值,在每条记录中自增 1

方案一

SQL: (如果想要降序排名,可以改成 ORDER BY age DESC

MySQL 查询排行_mysql


效果:(值相同,排名不同)
MySQL 查询排行_mysql

 

方案二

SQL: (

暂存上一条记录的 age (@prevRank)。

> 如果当前 age 与其相等,使用与前一记录相同的排名;

> 否则排名加一,并更新 @prevRank

)


MySQL 查询排行_mysql


效果:(值相同,排名也相同;排名值连续递增)
MySQL 查询排行_mysql

方案三

SQL: (

增加一个变量(@incRank)用于记录序号(类似方案一)。

> 如果当前 age 与上一条记录相同,使用与前一记录相同的排名(类似方案二)

> 否则使用序号(@incRank)


MySQL 查询排行_mysql

效果:(值相同,排名也相同;排名值递增不连续)
MySQL 查询排行_mysql

 

 

附数据:


MySQL 查询排行_mysql
 

欢迎大家阅读《MySQL 查询排行_mysql》,跪求各位点评,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL 查询排行_mysql

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址