当前位置: 首页 > article >正文

高频 SQL 50 题(基础版)| 180. 连续出现的数字

表:Logs

±------------±--------+
| Column Name | Type |
±------------±--------+
| id | int |
| num | varchar |
±------------±--------+
在 SQL 中,id 是该表的主键。
id 是一个自增列。

找出所有至少连续出现三次的数字。

返回的结果表中的数据可以按 任意顺序 排列。

结果格式如下面的例子所示:

示例 1:

输入:
Logs 表:
±—±----+
| id | num |
±—±----+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 1 |
| 6 | 2 |
| 7 | 2 |
±—±----+
输出:
Result 表:
±----------------+
| ConsecutiveNums |
±----------------+
| 1 |
±----------------+
解释:1 是唯一连续出现至少三次的数字。

解1:开窗函数

SELECT DISTINCT num AS ConsecutiveNums 
FROM
	(
		SELECT
			num,
			lead (num, 1) over () AS num1,
			lead (num, 2) over () AS num2
		FROMlogs
	) t
WHERE t.num = num1 AND t.num = num2 

解2:声明变量

SELECT DISTINCT ConsecutiveNums
FROM(
SELECT
	IF(@p_num = num ,@count := @count + 1,@count:=1) AS count,
	@p_num := num AS ConsecutiveNums
FROM
	LOGS,(SELECT@count := 1,@p_num := NULL) r
) S
WHERE count>=3

http://www.kler.cn/a/321440.html

相关文章:

  • 19_HTML5 Web Workers --[HTML5 API 学习之旅]
  • spring专题笔记(六):bean的自动装配(自动化注入)-根据名字进行自动装配、根据类型进行自动装配。代码演示,通俗易懂。
  • NPM老是无法install,timeout?npm install失败
  • Git--tag标签远程管理
  • mac 关闭 sip
  • GPT人工智能在医疗文档中的应用
  • The Open Group 2024生态系统架构·可持续发展年度大会全面解读
  • 企业微信AI社群助手:赋能企业私域运营的新引擎
  • JAVA集成Jasypt进行加密、解密(SpringBoot)
  • 【ARM 嵌入式 编译系列 10.4 -- GNU Binary Utilies】
  • python测试开发---前后端交互Axios
  • 利用 ARMxy边缘计算网关和 BLiotlink 软网关,实现工业智能化升级
  • VB.NET中如何利用ADO.NET Entity Framework进行ORM(对象关系映射)
  • 在Mac电脑上安装adb环境
  • npm 安装newman时idealTree:vue: sill idealTree buildDeps卡住了(实测成功)
  • 初识C语言(三)
  • VC++同时处理ANSI和Unicode字符集,除了使用TCHAR和_T()宏外,还有其他方法可以实现吗?
  • 【含文档】基于Springboot+微信小程序 的高校社团管理小程序(含源码+数据库+lw)
  • fastdfs开源分布式文件系统及迁移部署
  • mvnd 初体验
  • 探索5 大 Node.js 功能
  • 【递归】7. leetcode 404 左叶子之和
  • 宠物浮毛难清理,希喂、小米、美的宠物空气净化器该选哪款?
  • 深度学习:自然语言处理的基本原理
  • sqlserver迁移数据库文件存储位置
  • Java2 实用教程(第6版)习题2 第四题