需求:统计等级排名前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;
如果第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;
发表评论
-
linux清除mysql占用cache
2013-11-01 10:55 2045在linux内部将cache分为2种: 1、write/rea ... -
规范、经验
2013-11-04 17:23 598尽量不用NULL列 query cach ... -
mysql模拟队列
2013-05-14 13:42 1097-- 初始化数据 DROP TABLE IF EXIST ... -
高性能mysql[第3版]--笔记
2013-05-03 23:35 06.8 6.8.1 mysql构建消息队列 se ... -
生成随机字符串
2013-04-30 10:41 0DELIMITER $$ CREATE FUNCTIO ... -
复制笔记
2013-04-27 17:48 0http://dev.mysql.com/doc/refman ... -
[整理]mysql导入导出
2013-04-24 22:40 0方案一:拷贝物理文件(innodb, innodb_file_ ... -
【整理中】mysql字符集使用
2013-04-24 22:29 0show variables like 'characte ... -
MYSQL监控内容整理
2013-04-24 13:40 0内容 硬解析,软解析,等待事件,表空间,索引,触发器,alte ... -
无限级联分类查询
2013-04-24 09:36 0DROP TABLE IF EXISTS location ... -
mysqldbcompare --使用
2013-04-07 09:39 0http://dev.mysql.com/doc/workbe ... -
MYSQL 发送数据大小计算公式
2013-03-29 16:20 889引用:http://www.realzyy.com/?p=15 ... -
#mysql 笔记#索引长度限制
2013-03-18 12:11 854http://dev.mysql.com/doc/refman ... -
mysqldump简单使用
2013-01-21 15:27 0mysqldump -B或者--databases:备份指定数 ... -
linux经常登入登出mysql重复输入密码
2013-01-16 17:51 974经常登入、登出mysql,尤其是密码重新输入比较复杂时,使用& ... -
mysql存储过程实现行转列
2012-08-30 16:24 2145把表t_rows中的数据转换 ... -
mysql 判断字符串是否是数字
2012-07-12 10:21 3016查询表table_name中col_name(字符串类型)的值 ... -
[转载]drop 大表效率问题
2012-06-15 09:32 46http://www.mysqlops.com/2011/05 ... -
monyog安装文件
2012-03-26 16:29 1278monyog安装包,绿色版 -
linux sysbench+mysql
2012-02-16 17:25 0一、sysbench安装 tar -zxvf ...
相关推荐
而“说明_Readme.html”通常包含了软件的详细使用说明、版本信息、注意事项以及可能遇到的问题与解决办法。 在安装和使用极点五笔6.5n时,用户需要注意以下几点: 1. **系统兼容性**:确保自己的计算机系统与软件...
2. **递归步骤**:要将n个盘子从柱子A移动到柱子C,首先需要将前n-1个盘子借助柱子B从A移动到C,然后将第n个盘子直接从A移动到C,最后再将柱子B上的n-1个盘子借助柱子A移动到C。 ### 递归算法实现 在C++中,我们...
### Altium Designer中“Duplicate Net Names Wire”错误的终极解决办法 #### 一、问题概述 在使用Altium Designer进行电路设计过程中,遇到“Duplicate Net Names Wire”这一类错误是较为常见的现象。这类错误通常...
### CAD常见小问题解决办法详解 #### 一、[Ctrl+N 无效时的解决方法] 在使用CAD软件的过程中,我们通常会使用`Ctrl+N`快捷键来新建一个项目。但是有时候按下`Ctrl+N`后,并不会立即创建新的项目,而是弹出了一个...
在这个问题和解决办法集中,我们探讨了一些常见的VC++编程中的概念和问题。 1. `_DEBUG` 预定义宏:在VC++中,`_DEBUG`宏是在Debug配置下自动定义的,用于启用调试功能,如内存泄漏检测等。如果你在代码中找不到这...
通常,这类文件会提醒用户检查系统配置是否满足游戏需求,以及安装过程中可能遇到的问题和解决办法。 总的来说,《N+》以其独特且富有挑战性的玩法,吸引了众多寻求刺激和智力挑战的玩家。这款游戏不仅提供了娱乐...
### C语言常见问题及规避和解决办法 #### 1. 声明和初始化 **1.1 如何决定使用哪种整数类型?** 在C语言中,选择正确的整数类型非常重要,因为不同的类型有不同的存储空间和范围。例如,`short int`、`int` 和 `...
3. 重复故障预防:监控有助于识别重复出现的问题,从而制定长期解决方案。 4. 扩展性评估:随着业务增长,监控可以帮助识别扩展需求,避免性能瓶颈。 5. 安全性检查:监控也包括对数据库安全性方面的关注,防止未经...
在压缩包内的两个文件“抢n数字游戏 例如30.sb2-251.exe”和“抢n数字游戏 例如30.sb2”中,`.sb2`是Scratch项目的文件扩展名,表示这是两个不同的Scratch源代码文件。其中,“-251.exe”可能是一个附加的可执行文件...
- **解决办法**:仔细检查并修正代码中的所有错误,通常从第一个错误开始逐个解决。 2. **文件未结束(fatal error C1004)** - **描述**:此错误通常意味着源代码中某个块(如函数、结构体定义等)没有正确闭合...
凡遇等差数列前n项和最值的问题,寻找临界项是解决问题的关键,寻找临界项的办法是解关于自然数的不等式组. (1)a1>0,d寻找临界项的办法是 (2)a1,d>0寻找临界项的办法是 . 例5、在等差数列{an}中,a1=-...
SVN_REV:=$(shell ((svnversion | grep -qv exported && echo -n 'Revision: ' && svnversion) || git svn info | sed -e 's/$$$$/M/' | grep '^Revision: ' || echo ${MALI_RELEASE_NAME}) 2>/dev/null | sed -e '...
- 如果余数不为零,重复上述步骤,用n替换m,r替换n,继续除法运算。 2. 欧几里得算法: 欧几里得算法是最古老的求GCD的方法,也是最基础的算法之一。它基于以下事实:两个数的最大公约数等于其中较小的数和两数...
数组中重复的数字分析及方法主要是解决在一个长度为n的数组里的所有数字都在0-n-1的范围内,数组中某些数字是重复的,但是不知道有几个数字重复了,也不知道每个数字重复了几次的问题。 在解决这个问题时,我们可以...
**解决办法**:不建议使用简单的 `remove()` 方法来删除所有重复元素。 ##### 2.2 使用 `for` 循环尝试删除所有重复元素 ```python l = [9, 6, 5, 6, 6, 7, 8, 9, 6, 0] for x in l: if x == 6: l.remove(x) ...
由于文档的格式问题,内容出现了重复和错乱,但即便如此,我们还是可以从中提取出有用的快捷键信息。以下是对这些键盘快捷键的详细解读和它们的用途: 1. Windows+BREAK:打开系统属性窗口。 2. Windows+D:显示...
猴子选大王是一个典型的编程问题,一般可用链表(可以用很大的数)或者while循环(使用此办法不能用太大的数)解决。为:n只猴子围坐成一个圈,按顺时针方向从1到n编号。然后从1号猴子开始沿顺时针方向从1开始报数,...
这个原理随后被阿拉伯人重复实验,但他们对影像的持久保存并无解决办法。直至19世纪,随着照相机、感光材料和化学处理技术的发展,人们才能将清晰的图像永久保存。\n\n1825年,尼埃普斯(N.J. Niepce)使用阳光摄影...
通过学习和实践,逐步理解了如何将理论知识转化为实际代码,遇到问题时积极寻找解决办法,提升了编程技能和问题解决能力。 总结:这份报告书详细介绍了如何利用数据结构中的线性表概念来实现一个学生信息管理系统,...