CREATE TABLE `zsl_test` (  
        `ID` INT(10) NULL DEFAULT NULL,  
        `class` INT(10) NULL DEFAULT NULL,  
        `score` INT(10) NULL DEFAULT NULL  
    )  
    COLLATE='utf8_general_ci'  
    ENGINE=InnoDB;     

    insert into zsl_test values (1,1,80);  
    insert into zsl_test values (2,1,80);  
    insert into zsl_test values (3,1,80);  
    insert into zsl_test values (4,1,80);  
    insert into zsl_test values (5,2,80);  
    insert into zsl_test values (6,2,80);  
    insert into zsl_test values (7,2,80);  
    insert into zsl_test values (8,2,80);  
    insert into zsl_test values (9,2,80);  
    insert into zsl_test values (10,2,80);  

    select id,class,score,rank from (  
    select b.id,b.class,b.score,@rownum:=@rownum+1 ,  
    if(@pdept=b.class,@rank:=@rank+1,@rank:=1) as rank,  
    @pdept:=b.class  
    from (  
    select id,class,score from zsl_test order by id   
    ) b ,(select @rownum :=0 , @pdept := null ,@rank:=0) c ) result  
    having rank <3 ;

Mysql中实现row_number的更多相关文章

  1. MySQL 数据库查询数据,过滤重复数据保留一条数据---(MySQL中的row_number变相实现方法)

    转自: http://www.maomao365.com/?p=10564 摘要: 下文讲述MySQL数据库查询重复数据时,只保留一条数据的方法 实现思路: 在MySQL数据库中没有row_numbe ...

  2. 如何在MySQL中查询每个分组的前几名【转】

    问题 在工作中常会遇到将数据分组排序的问题,如在考试成绩中,找出每个班级的前五名等. 在orcale等数据库中可以使用partition语句来解决,但在mysql中就比较麻烦了.这次翻译的文章就是专门 ...

  3. 如何在mysql中查询每个分组的前几名

    问题 在工作中常会遇到将数据分组排序的问题,如在考试成绩中,找出每个班级的前五名等.  在orcale等数据库中可以使用partition 语句来解决,但在MySQL中就比较麻烦了.这次翻译的文章就是 ...

  4. MySQL中You can't specify target table for update in FROM clause一场

    mysql中You can't specify target table <tbl> for update in FROM clause错误的意思是说,不能先select出同一表中的某些值 ...

  5. MySql中in和exists效率

    mysql中的in语句是把外表和内表作hash 连接,而exists语句是对外表作loop循环,每次loop循环再对内表进行查询.一直大家都认为exists比in语句的效率要高,这种说法其实是不准确的 ...

  6. [原创]MYSQL中利用外键实现级联删除和更新

    MySQL中利用外键实现级联删除.更新 MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定 ...

  7. mysql中的多行查询结果合并成一个

    SELECT GROUP_CONCAT(md.data1) FROM DATA md,contacts cc WHERE md.conskey=cc.id AND md.mimetype_id= 5 ...

  8. 【转】MySql中的函数

    原文:http://www.cnblogs.com/kissdodog/p/4168721.html MySQL数据库提供了很多函数包括: 数学函数: 字符串函数: 日期和时间函数: 条件判断函数: ...

  9. sqlserver 中数据导入到mysql中的方法以及注意事项

    数据导入从sql server 到mysql (将数据以文本格式从sqlserver中导出,注意编码格式,再将文本文件导入mysql中): 1.若从slqserver中导出的表中不包含中文采用: bc ...

随机推荐

  1. testng 教程

    Testng 简介: Testng是一套开源测试框架,是从Junit继承而来,testng意为test next generation,主要有以下特性: annotations  注释,如 @test ...

  2. Java GridBagLayout 简单使用

    这里只介绍了很基础布局构建及使用,主要是关于 GridBagLayout. 首先整套流程大概是, 声明一个 GridBagLayout 对象 private GridBagLayout gridBag ...

  3. 各种浏览器的Hack写法(chrome firefox ie等)

    Hack是针对不同的浏览器去写不同的CSS样式,从而让各浏览器能达到一致的渲染效果,那么针对不同的浏览器写不同的CSS CODE的过程,就叫CSS HACK,同时也叫写CSS Hack. 然后将Hac ...

  4. 安装oracle常见问题和解决方案

    ./runInstaller: line 95: [: too many arguments ./runInstaller: line 99: /home/oracle/oracle/database ...

  5. ASP.NET知识总结(5.文件上传 文件下载)

    5.文件上传 ->说明:使用http协议只适合传输小文件,如果想传递大文件,则需要使用插件或者客户  端程序(使用ftp协议) ->客户端操作 <1>为表单添加属性:encty ...

  6. WebConfig配置

    安全配置示例 https://msdn.microsoft.com/zh-cn/magazine/gg309184.aspx

  7. iframe无刷新跨域并获得返回值

    参考:http://geeksun.iteye.com/blog/1070607 /** * iframe跨域提交大数据 * @param action 跨域地址 * @param arr [ {na ...

  8. 数据的平面拟合 Plane Fitting

    数据的平面拟合 Plane Fitting 看到了一些利用Matlab的平面拟合程序 http://www.ilovematlab.cn/thread-220252-1-1.html

  9. hdu 4547(LCA)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4547 思路:这题的本质还是LCA问题,但是需要注意的地方有: 1.如果Q中u,v的lca为u,那么只需 ...

  10. Ubuntu菜鸟入门(一)—— 截图工具安装

    Ubuntu截图工具Shutter 1.添加安装包软件源 sudo add-apt-repository ppa:shutter/ppa 2.更新源并安装 shutter sudo apt-get u ...