• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL_实现组内排序-Oracle中的rank()函数的功能

MySQL_实现组内排序-Oracle中的rank()函数的功能

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了mysql等相关知识,希望本文的分享对您有所帮助
??假设表格为student, 数据如下:

1.png

??我们要在MySQL中实现Oracle中的rank()函数功能,即组内排序,具体来说: 就是对student表中按照课程(course)对学生(name)按分数(score)高低进行排名。

??首先新建存储过程realize_rank_in_MySQL,代码如下:

DROP PROCEDURE IF EXISTS realize_rank_in_MySQL;
DELIMITER ;;
CREATE PROCEDURE realize_rank_in_MySQL()
BEGIN
    DECLARE i int;
    SET i = 0;
    WHILE i < (select count(DISTINCT course) from student) DO
            SET @ROW =0;
            INSERT INTO student_rank
            SELECT *, (@ROW:=@ROW+1) AS rank FROM student
            WHERE course=(select DISTINCT course from student limit i,1)
            ORDER BY score DESC;
            set i = i + 1;
    END WHILE;
END
;;
DELIMITER ;

然后输入以下查询语句即可:

drop table if exists student_rank;
create table student_rank like student;
alter table student_rank add rank int;
call realize_rank_in_MySQL;
select * from student_rank;

??结果如下:

1.png

注意:这里的排名并没有实现分数相同时排名也一样的情形。

相关文章:

MySQL的rank函数实现_MySQL

hive中使用标准sql实现分组内排序

相关视频:

尚观Oracle入门到精通视频教程

以上就是MySQL_实现组内排序-Oracle中的rank()函数的功能的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-12-05MySQL慢查询日志相关的配置和使用
  • 2017-05-11汇总整理MYSQL相关操作命令
  • 2018-12-05用MySQL函数清除字符串首尾空白字符的方法
  • 2018-12-05Linux下实现MySQL数据库自动备份的实例详解
  • 2018-12-05mysql免安装制作使用说明
  • 2018-12-05MYSQL的select 学习笔记
  • 2018-12-05sql 常用技巧整理
  • 2018-12-05MySQL 多表查询实现分析
  • 2018-12-05MySQL在cmd和python下的常用操作解析
  • 2018-12-05SQL2008中SQL应用之-锁定(locking) 应用分析

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 将 Ghost 从 SQLite3 数据库迁移到 MySQL 数据库
    • Mysql Cluster的备份和恢复
    • MySQL 5.7新特性| Json Column和Generated Column(下)
    • MySQL的事务隔离级别实例教程
    • MySQL与SQL注入与防注入的方法
    • 正确理解Mysql中的列索引和多列索引
    • 让MySQL数据库跑的更快 为数据减肥
    • ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
    • 计算MySQL的内存峰值公式
    • 为mysql数据库添加添加事务处理的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有