摘要: 题意:查找表中重复的 . 此题是很典型的对分组结果进行统计筛选例题,因此可以利用 进行分组,然后使用 统计. 此处,对 与`group by`进行比较(引用自:): 后不能跟聚合函数,因为 执行顺序大于聚合函数。 子句的作用是在对查询结果进行分组前,将不符合 条件的行去掉,即在分组之前过滤数据,条件 阅读全文
posted @ 2019-10-09 17:17 从此寂静无声 阅读(247) 评论(0) 推荐(2) 编辑
摘要: 这种单表比较条件,一般都是表内进行 操作. 参照此思路,解题如下所示: 运行效率在可以接受的范围,此外语句也较为清晰便于维护. 阅读全文
posted @ 2019-10-09 15:47 从此寂静无声 阅读(222) 评论(0) 推荐(2) 编辑
摘要: 题意:求表中连续出现3次以上的数据. 因此,根据题意构造第一版本答案(使用连续的ID进行比较): 当前版本答案通过了测试,但是运行效率太低了. 分析原因,可能与 条件相关,当 为0时, 1不会寻找到相关数据,导致 执行缓慢. 因此,修改为如下所示: 此版本,效率得到了巨大的提高。 PS: 如果您觉得 阅读全文
posted @ 2019-10-09 15:05 从此寂静无声 阅读(182) 评论(0) 推荐(2) 编辑
摘要: 此题,其本质就是赋值行号(需要注意分数相同的情景). 在实践过程中,初版答案如下所示: 此处,使用 来统计行号,注意使用 来区分相同分数. 但是,此解题方案的效率较差, 运行肯定是越快越好. 因此,在 中引入变量来赋值行号,以替代耗时的 操作. 此处,查询是在 与临时表之间进行 . 此外,使用临时变 阅读全文
posted @ 2019-10-09 12:36 从此寂静无声 阅读(427) 评论(0) 推荐(2) 编辑
摘要: 此题相较于 做了一些改进: 创建 ; 需要判断传入参数的合理性. 因此,对代码改动如下所示: mysql CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT BEGIN DECLARE P INT DEFAULT N 1; IF (P PS: 阅读全文
posted @ 2019-10-09 08:53 从此寂静无声 阅读(251) 评论(0) 推荐(2) 编辑