之前要查询排序且有排名,如果是oracle的话有rank() over()函数,但是mysql没有这样的函数,只能自己试着用变量实现

表结构:

SELECT id,

score ,

@rank := @rank + 1 AS rank

FROM a, (SELECT @rank := 0) tmp

ORDER BY score desc ;

不过这样有一个问题如果同时有两个99分rank也会顺序的排序

我想到的临时解决办法就是内层进行一次group by,仅算出分数的排名,再用分数与a表匹配

sql代码:

SELECT a.id,a.score,b.rank from a,(

SELECT a.score ,

@rank := @rank + 1 AS rank

FROM (SELECT score from a GROUP BY score) a, (SELECT @rank := 0) tmp

ORDER BY score desc

) b

where a.score = b.score

ORDER BY b.rank;

不知道有没有更好的解决办法,如果不正确希望指点

mysql over rank_mysql实现Oracle 的rank() over()函数相关推荐

  1. mysql 类似 nvl,浅谈mysql可有类似oracle的nvl的函数

    浅谈mysql可有类似oracle的nvl的函数 要用ifnull,而不是isnull isnull是判断是否为null,返回值是1表示null或者0表示不为空 ifnull等同于oracle的nvl ...

  2. Oracle中rank() over()函数排名

    --已知:两种排名方式(分区和不分区):使用和不使用partition --两种计算方式(连续,不连续),对应函数:dense_rank,rank 查询原始数据:学号.姓名.科目名.成绩 select ...

  3. MYSQL 生成UUID() 即 ORACLE 中的guid()函数

    MYSQL 生成UUID 即 guid 函数 -- 带 - 的UUID select UUID() -- 去掉 - 的UUID select replace(uuid(),'-','') 转载于:ht ...

  4. oracle sql时间排序函数,sql的rank函数

    SQL SERVER 2008排序函数(窗口函数) 排序函数可以用来协助给结果集增加位置信息.SQL SERVER 2008只有四个排序函数,介绍如下: ROW_NUMBER:返回结果集中给定行的序号 ...

  5. Mysql,SqlServer,Oracle主键自动增长的设置

    Mysql,SqlServer,Oracle主键自动增长的设置 参考文献 http://blog.csdn.net/andyelvis/article/details/2446865 1.把主键定义为 ...

  6. Oracle 数据库数据排名函数:rank() 和dense_rank() 。

    Oracle 数据库数据排名函数:  rank() 和dense_rank() . --------------------------------------------间断排名(也称强制排名)   ...

  7. Oracle中rank() over, dense_rank(), row_number() 的区别

    Oracle中rank() over, dense_rank(), row_number() 的区别 假设现在有一张学生表student,学生表中有姓名.分数.课程编号,现在我需要按照课程对学生的成绩 ...

  8. Mysql UTF8 varchar与Oracle ZHS16GBK varchar2同长度下存汉字的差异

    目录 1简介... 1 2 准备... 1 2.1 环境说明... 1 3 安装... 2 4 配置... 2 5 使用... 3 5.1 验证实验... 3 5.2 问题分析... 5 6 延展.. ...

  9. oracle的rank,over partition 使用 和lead

    http://blog.csdn.net/rokii/article/details/6429145 排列(rank ())函数.这些排列函数提供了定义一个集合(使用 PARTITION 子句),然后 ...

最新文章

  1. 详解PyTorch编译并调用自定义CUDA算子的三种方式
  2. 银行计算机设备管理 总结,【2017年银行自助设备中心年终总结】_银行自助设备工作总结...
  3. 【五校联考7day2】QYQ的图
  4. Vue(ES6)中的data属性为什么不能是一个对象?
  5. [Leetcode][程序员面试金典][面试题16.11][JAVA][跳水板][数学][动态规划]
  6. Software-Defined Networking (SDN) Definition-软件定义网络
  7. 拓扑排序:如何确定代码源文件的编译依赖关系
  8. EditPlus使用编辑Object C
  9. 用Python网络爬虫来抓取网易云音乐歌词
  10. 含重根的三阶实对称矩阵的快速对角化方法
  11. Java黑皮书课后题第6章:*6.7(金融应用:计算未来投资回报率)编写一个方法,计算按照给定的年数和利率计算未来投资回报值,未来投资回报值是用编程练习题2.21中的公式得到的,使用下面方法头
  12. win7添加网页ftp服务器地址,win7添加ftp服务器地址
  13. 04.VisionPro工具说明
  14. Amazon亚马逊卖家设置World First(WF卡)收款教程!
  15. ES7-ES11新特性汇总
  16. 强制OOALV运行数据修改事件
  17. 蜂鸣器播放《两只老虎》
  18. L2-4 彩虹瓶 (25 分)-2019天梯赛全国总决赛
  19. 利用DISM修复WIN11的系统组件错误
  20. Html.fromHtmls的使用

热门文章

  1. 数仓lambda架构
  2. 《战略管理》第一章什么是战略管理读书笔记
  3. 《我们这样近,我们这样远》
  4. 上位机下位机概念详解
  5. 亚马逊云科技2022中国企业出海季系列直播活动今夏盛启
  6. 10 万阿里人都爱用的网红工具,语雀如何“用保护钱包的技术在保护文档安全​”?...
  7. vue中开发多语言(国际化),vue+i18n(详细教程)
  8. Socket通信bind错误
  9. Element el-tag 标签详解
  10. 卡巴斯基CEO称勒索病毒为最严重的网络攻击之一