`

查询前N名,第N名重复解决办法

阅读更多
需求:统计等级排名前N名,等级相同则比较经验值(基本上不会相同,除非到等级)
   如果第N名和第N+1名相同,则N+1名也输出,依此类推。

表信息:表名:players
        列名:playerID    玩家ID
              playerName  玩家名称
              level       等级
              exp         经验值

统计SQL:

### 确定结果肯定大于N的查询sql

SELECT p.`playerID`, p.`playerName`,p.`level`, p.`exp`
FROM `players` AS p, (SELECT t.`level` AS tLevel, t.`exp` AS tExp
                  FROM players AS t
                  ORDER BY t.`level` DESC,t.`exp` DESC
                  LIMIT N-1,1) AS t1
WHERE p.level >= t1.tLevel AND p.exp >= t1.tExp
ORDER BY p.level DESC,p.exp DESC;


### 不确定结果大小

SELECT p.`playerID`, p.`playerName`,p.`level`, p.`exp`
FROM `players` AS p,
(SELECT (CASE WHEN MIN(t2.ttLevel) IS NULL THEN 0 ELSE MIN(t2.ttLevel) END) AS tLevel
,(CASE WHEN MIN(t2.ttExp) IS NULL THEN 0 ELSE MIN(t2.ttExp) END) AS tExp
FROM (SELECT t.`level` AS ttLevel, t.`exp` AS ttExp FROM players AS t
ORDER BY t.`level` DESC,t.`exp` DESC
        LIMIT N) as t2
) AS t1
WHERE p.level >= t1.tLevel AND p.exp >= t1.tExp
ORDER BY p.level DESC,p.exp DESC;

0
0
分享到:
评论

相关推荐

    Java面试宝典2010版

    18、一个用户表中有一个积分字段,假如数据库中有100多万个用户,若要在每年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决? 19、一个用户具有多个角色,请查询出该表中具有该用户的所有角色的其他用户。...

    黄冈中学高一数学教案

     凡遇等差数列前n项和最值的问题,寻找临界项是解决问题的关键,寻找临界项的办法是解关于自然数的不等式组.  (1)a1>0,d寻找临界项的办法是  (2)a1,d>0寻找临界项的办法是 . 例5、在等差数列{an}中,a1=-...

    基于python 等频分箱qcut问题的解决

    在比较旧版本的python中,提供一下解决办法: import pandas as pd def pct_rank_qcut(series, n): ''' series:要分箱的列 n:箱子数 ''' edages = pd.series([i/n for i in range(n)] # 转换成百分比 func ...

    猴子选大王设计并编写程序

    猴子选大王是一个典型的编程问题,一般可用链表(可以用很大的数)或者while循环(使用此办法不能用太大的数)解决。为:n只猴子围坐成一个圈,按顺时针方向从1到n编号。然后从1号猴子开始沿顺时针方向从1开始报数,...

    Floyd算法求点与点之间的最短路径

    解决这个问题的一个办法是,每次以一个顶点为源,重复执行Dijkstra算法n法。这样,就可以求得所有顶点对之间的最短路径。这样做所需要的计算时间为O(n^3)。另外,也可以采用的较直接的Floyd算法。

    计算机二级公共基础知识

    例如,在一维数组[21,46,24,99,57,77,86]中,查找数据元素99,首先从第1个元素21开始进行比较,比较结果与要查找的数据不相等,接着与第2个元素46进行比较,以此类推,当进行到与第4个元素比较时,它们相等,...

    Exce百宝箱——2012版本.rar

    【错误代码查询】:查询VBA错误ID号对应的原因及解决办法 【VBA窗体帮助信息查询】:窗体相关的VBA帮助查询,包括事件、方法、属性、对象、集合与控件 【函数运算符符语法查询】:VBA函数以及运算符相关的帮助查询 ...

    大数据的一些面试题.pdf

    适⽤范围:第k⼤,中位数,不重复或重复的数字 基本原理及要点:因为元素范围很⼤,不能利⽤直接寻址表,所以通过多次划分,逐步确定范围,然后最后在⼀个可以接受的范围内进⾏。 可以通过多次缩⼩,双层只是⼀个例...

    2020年春【中石油】计算机网络课程设计第二次在线作业(标准).doc

    A、死机 B、断线 C、拥塞 D、安全 正确答案:C 第10题,10.(2.5分)拥塞可以采用增加()和降低载荷的办法解决问题。 A、资源 B、链路 C、设备 D、服务 正确答案:A 第11题,11.(2.5分)最早的负载均衡技术是通过()...

    Excel百宝箱9.0无限制破解版.rar

    【错误代码查询】:查询VBA错误ID号对应的原因及解决办法 【VBA窗体帮助信息查询】:窗体相关的VBA帮助查询,包括事件、方法、属性、对象、集合与控件 【函数运算符符语法查询】:VBA函数以及运算符相关的帮助查询 ...

    史上最全程序员面试题搜集(intel Cisco、华为、Juniper 微软 摩托罗拉)

    各大公司的面试题 非常详尽 涵盖范围 C C++ Linux 网络 ...额外说两句可能是废话的话:N多大学毕业生说求职难,家长求爷爷告奶奶帮着使劲,但解决问题的根本办法是提高自己的能力,有一技之长, 相信金子总是会闪光的。

    EXCEL函数公式集

    取前五名,后五名的方法 如何用公式求出最大值所在的行? 求多个最高分 如何求多条件的平均值 想求出第三大之数值 【查询和查找引用】 查找顺序公式 怎样实现精确查询 查找及引用 查找函数的应用 怎么能方便的判断...

    Excel公式大全操作应用实例(史上最全)

    取前五名,后五名的方法 如何用公式求出最大值所在的行? 求多个最高分 如何求多条件的平均值 想求出第三大之数值 【查询和查找引用】 查找顺序公式 怎样实现精确查询 查找及引用 查找函数的应用 怎么能方便的判断...

    正则表达式30分钟入门教程

    {n,} 重复n次或更多次 {n,m} 重复n到m次 下面是一些使用重复的例子: Windows\d+匹配Windows后面跟1个或更多数字 ^\w+匹配一行的第一个单词(或整个字符串的第一个单词,具体匹配哪个意思得看选项设置) 字符类 要想...

    用C编写班级成绩管理系统

    解决的这个问题的办法是调整。最后还是老师帮我帮我们找到了问题的所在——for 循环的次超过了链表中结点的数量。再就是自定义函数时由于课本的概念不清楚,多写了空格键,以至函数调用不出来。又如:在设计修改学生...

    经典SQL语句大全

    3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段 alter table tablename --添加一个自增列 add...

    数据库操作语句大全(sql)

    3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段 alter table tablename --添加一个自增列 ...

    editplus 代码编辑器html c++ jsp css

    【9】 软件技巧——提示找不到语法文件的解决办法 【10】软件技巧——设置editplus支持其它文字,如韩文———-jackywu1978 【11】软件技巧——FTP 上传的设置—————————-李应文2.11汉化版 【12】软件技巧...

    sql经典语句一部分

    3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段 alter table tablename --添加一个自增列 add...

    EditPlus 2整理信箱的工具

    【9】 软件技巧——提示找不到语法文件的解决办法 【10】软件技巧——设置editplus支持其它文字,如韩文----------jackywu1978@LJF 【11】软件技巧——FTP 上传的设置----------------------------李应文2.11汉化版...

Global site tag (gtag.js) - Google Analytics