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

news2024/11/20 15:34:53

一、题目相关内容

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;

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

四、总结

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1297873.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日一练【四数之和】

一、题目描述 18. 四数之和 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复&#x…

Conda 搭建简单的机器学习 Python 环境

文章目录 Conda 概述Conda 常用命令Conda 自身管理查看 Conda 版本更新 Conda清理索引缓存添加镜像源设置搜索时显示通道地址查看镜像源删除镜像源 环境管理创建虚拟环境删除虚拟环境查看所有虚拟环境复制虚拟环境激活虚拟环境关闭虚拟环境导入、导出环境 包管理虚拟环境下安装…

java多线程(常用方法、实现方式、线程安全问题、生命周期、线程池)

多线程相关的三组概念 程序和进程 程序(program):一个固定的运行逻辑和数据的集合,是一个静态的状态,一般存储在硬盘中。简单来说就是我们编写的代码 进程(process):一个正在运行的…

openGauss学习笔记-149 openGauss 数据库运维-备份与恢复-逻辑备份与恢复之gs_restore

文章目录 openGauss学习笔记-149 openGauss 数据库运维-备份与恢复-逻辑备份与恢复之gs_restore149.1 背景信息149.2 命令格式149.3 参数说明149.3.1 通用参数-V, –version149.3.2 导入参数 149.4 示例 openGauss学习笔记-149 openGauss 数据库运维-备份与恢复-逻辑备份与恢复…

springboot075电影评论网站系统设计与实现

springboot075电影评论网站系统设计与实现 源码获取: https://docs.qq.com/doc/DUXdsVlhIdVlsemdX

Nginx负载均衡实战

🎵负载均衡组件 ngx_http_upstream_module https://nginx.org/en/docs/http/ngx_http_upstream_module.html upstream模块允许Nginx定义一组或多组节点服务器组,使用时可以通过多种方式去定义服务器组 样例: upstream backend {server back…

C. Polycarp Recovers the Permutation

没啥思路,看到题解,先处理最大值,发现非常的nice // Problem: C. Polycarp Recovers the Permutation // Contest: Codeforces - Codeforces Round 756 (Div. 3) // URL: https://codeforces.com/problemset/problem/1611/C // Memory Limit:…

HXDSP2441-Demo板

板卡图示 下图为HXDSP2441DEMO板,HXDSP2441DEMO板是围绕HXDSP2441构建的芯片演示验证平台。 板卡简介 除了为HXDSP2441芯片提供供电、时钟、储存、网络及调试电路,来实现芯片最基本的功能,也添加了相关模块以搭建HXDSP2441的典型应用场景…

深入理解JavaScript的箭头函数

深入理解JavaScript的箭头函数 在ES6中,JavaScript引入了箭头函数的概念,它提供了一种更简洁的语法来定义匿名函数。虽然箭头函数看起来很简单,但它们在实际应用中有一些独特的特性和行为。让我们深入理解箭头函数并学习如何正确地使用它们。…

【STM32】TIM定时器基本定时功能

第一部分:定时器基本定时的功能; 第二部分:定时器的输出比较功能; 第三部分:定时器输入捕获的功能; 第四部分:定时器的编码接口。 1 TIM简介 TIM(Timer)定时器&#…

常见统计学习方法特点总结

1. 概述 方法适用问题模型特点模型类型学习策略损失函数学习算法1感知机二分类分离超平面判别模型极小化误分点到超平面距离误分点到超平面距离SGD2KNN多分类,回归特征空间,样本点判别模型---3朴素贝叶斯多分类特征与类别的联合概率分布,条件…

如何实现高效的Web自动化测试?

随着互联网的快速发展,Web应用程序的重要性也日益凸显。为了保证Web应用程序的质量和稳定性,Web自动化测试成为必不可少的一环。然而,如何实现高效的Web自动化测试却是一个值得探讨的课题。 首先,选择合适的测试工具是关键。市面…

算法Day22 星南二楼(最长升序子序列)

星南二楼(最长升序子序列) Description Input Output Sample 代码 import java.util.*;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int[] grid new int[n];for(int j0;j&l…

VIM光标移动和翻页快捷键-包含vim帮助文档截图

光标移动到行首(行首没有空格): ^ 光标移动到行首(行首有空格): 数字0 光标移动到行尾: $ 移动到指定行:7G(数字加一个大G) 光标移动到文件开始:gg(两个小g) 光标移动到文件末尾:G(一个大G&…

[Linux] 基于LAMP架构安装论坛

一、安装Discuz论坛 1.1 创建数据库,并进行授权 mysql -u root -p123CREATE DATABASE bbs; #创建一个数据库GRANT all ON bbs.* TO bbsuser% IDENTIFIED BY admin123; #把bbs数据库里面所有表的权限授予给bbsuser,并设置密码admin123flush privileges; #刷新数据库…

Vue学习计划-Vue2--VueCLi(二)vuecli脚手架创建的项目内部主要文件分析

1. 文件分析 1. 补充: 什么叫单文件组件? 一个文件中只有一个组件 vue-cli创建的项目中,.vue的文件都是单文件组件,例如App.vue 2. 进入分析 1. package.json: 项目依赖配置文件: 如图,我们说主要的属性…

LeetCode题:11. 盛最多水的容器

目录 一、题目要求 二、解题思路 三、代码 一、题目要求 11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多…

【学习通】电脑如何下载老师分享的学习通文件

问题:老师在微信分享学习通文件 直接打开点击下载不了 问题如图 解决方案 点击保存云盘,保存到自己的学习通 在个人空间中的云盘下载就不会出现问题了

JavaEE07 定时器的使用和模拟实现

前言 前面我们聊了很多关于阻塞队列,单例模式等的应用,今天我们就来聊聊定时器的功能和模拟实现,其实定时器的实现在我们的日常生活中也很常见,比如说平常创建一些定时任务,定时开关机,定时去发表一篇qq空间等等,今天我们就来简单实现一个定时器. 1.JVM提供的定时器的使用 在自…