MYSQL练题笔记-高级查询和连接-连续出现的数字

2023-12-06 01:44

本文主要是介绍MYSQL练题笔记-高级查询和连接-连续出现的数字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、题目相关内容

1)相关的表和题目

2)帮助理解题目的示例,提供返回结果的格式

二、自己初步的理解

其实这一部分的题目很简单,但是没啥思路啊,怎么想都想不通,还是看题解吧,中等题就是中等题。

三、题解展示和分析

评论区高手多啊,理解后觉得这个题目还是需要细细思考的,所以整理一下。

1.通过自连接的简单解法(也是官方解法)

其实我还是不怎么理解这一题的意义,有可能是因为是id和num这种没太多意义的字段,所以要动脑子了。然后猴子数据分析的解析有一个联系生活实例的,好懂一些。原题目是找出连续出现至少3次的数字,而这个数字以id命名。实际生活例子就是连续出现至少3次的成绩,成绩以学号区分,有兴趣的可以去看看。打算分解题目并联合题解思考,下面是题解

SELECT * FROM Logs l1, Logs l2, Logs l3 WHERE l1.Id = l2.Id - 1 AND l2.Id = l3.Id - 1 AND l1.Num = l2.Num AND l2.Num = l3.Num ;

连续:利用三张表的id固定的差值1表示是连续出现的数字

相等的num:各个表的num相等就行。

输出相等的num:三张表num相等,随意输出一个就行。

但是重点是我不知道怎么就想到自连接的啊。

这里隐含的前提是复制多个表,自连接。我脑子里想象的是每个表横着连在一起,最终输出一条记录。其实这三个点我都没想到自连接以及连续由id把控,num相等也是放在where。多多努力吧,下次说不定就记得了。

然后有一个注意点,我自己提交的题解就是第一个,但是我没有想到distinct这个,,然后提交的时候报错了,果然不自己打我都不知道,因为有可能连续三次之后第四次还是连续的,那就有两个相同的num了。

2.符合实际的题解

因为看评论区有提问如果不是连续3次,更多难道都得连接起来吗,而且id正常情况有可能不连续的。下面就是解决这个问题的题解。

SELECT DISTINCT Num FROM ( SELECT Num,COUNT(1) as SerialCount FROM (SELECT Id,Num, row_number() over(order by id) - ROW_NUMBER() over(partition by Num order by Id) as SerialNumberSubGroup FROM ContinueNumber) as Sub GROUP BY Num,SerialNumberSubGroup HAVING COUNT(1) >= 3) as Result;

但是我还是觉得我理解的不透,以后补上吧,评论区也有一个很牛的总结这个题解的人!!

四、总结

就是想不到,也就是不熟练,多多练!!!

我还是觉得自己想的多,然后让自己停下步伐了,想要整理中等题我为什么不会的原因,但是这里题都还没开始动就想,走都不会就想着跑了,但是我又知道反思很重要,又感觉自己不得其法,我是不是要复习之前做了什么啊!!!!!然后明天有一个面试,然后想着能准备一下,然后找各种东西,又发现自己好多东西不会但是发现自己还是别准备了,还是让自己相信快就是慢吧,但是做完这一题总结我感觉其实自己还是不会啊,就是到底怎么总结吗,只写自己做了什么感觉得不到成长啊。写完这题找下思路吧!!!

然后最近确实静不下心,应该是方法有些不对。

这篇关于MYSQL练题笔记-高级查询和连接-连续出现的数字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/459931

相关文章

grom设置全局日志实现执行并打印sql语句

《grom设置全局日志实现执行并打印sql语句》本文主要介绍了grom设置全局日志实现执行并打印sql语句,包括设置日志级别、实现自定义Logger接口以及如何使用GORM的默认logger,通过这些... 目录gorm中的自定义日志gorm中日志的其他操作日志级别Debug自定义 Loggergorm中的

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据

《mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据》文章主要介绍了如何从.frm和.ibd文件恢复MySQLInnoDB表结构和数据,需要的朋友可以参... 目录一、恢复表结构二、恢复表数据补充方法一、恢复表结构(从 .frm 文件)方法 1:使用 mysq

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.

MySQL进阶之路索引失效的11种情况详析

《MySQL进阶之路索引失效的11种情况详析》:本文主要介绍MySQL查询优化中的11种常见情况,包括索引的使用和优化策略,通过这些策略,开发者可以显著提升查询性能,需要的朋友可以参考下... 目录前言图示1. 使用不等式操作符(!=, <, >)2. 使用 OR 连接多个条件3. 对索引字段进行计算操作4

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

MySQL zip安装包配置教程

《MySQLzip安装包配置教程》这篇文章详细介绍了如何使用zip安装包在Windows11上安装MySQL8.0,包括下载、解压、配置环境变量、初始化数据库、安装服务以及更改密码等步骤,感兴趣的朋... 目录mysql zip安装包配置教程1、下载zip安装包:2、安装2.1 解压zip包到安装目录2.2

MySQL安装时initializing database失败的问题解决

《MySQL安装时initializingdatabase失败的问题解决》本文主要介绍了MySQL安装时initializingdatabase失败的问题解决,文中通过图文介绍的非常详细,对大家的学... 目录问题页面:解决方法:问题页面:解决方法:1.勾选红框中的选项:2.将下图红框中全部改为英

MySQL 中的服务器配置和状态详解(MySQL Server Configuration and Status)

《MySQL中的服务器配置和状态详解(MySQLServerConfigurationandStatus)》MySQL服务器配置和状态设置包括服务器选项、系统变量和状态变量三个方面,可以通过... 目录mysql 之服务器配置和状态1 MySQL 架构和性能优化1.1 服务器配置和状态1.1.1 服务器选项