Leetcode No.180 连续出现的数字

Posted AI算法攻城狮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode No.180 连续出现的数字相关的知识,希望对你有一定的参考价值。

一、题目描述

表:Logs

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| num         | varchar |
+-------------+---------+
id 是这个表的主键。

编写一个 SQL 查询,查找所有至少连续出现三次的数字。

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

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

Logs 表:
+----+-----+
| Id | Num |
+----+-----+
| 1  | 1   |
| 2  | 1   |
| 3  | 1   |
| 4  | 2   |
| 5  | 1   |
| 6  | 2   |
| 7  | 2   |
+----+-----+

Result 表:
+-----------------+
| ConsecutiveNums |
+-----------------+
| 1               |
+-----------------+
1 是唯一连续出现至少三次的数字。

二、思路

使用lag窗口函数https://xingqijiang.blog.csdn.net/article/details/113792650

三、代码

select distinct(Num) ConsecutiveNums
from(
    select Num,
    lag(Num,1)over(order by id desc) as last1,
    lag(Num,2)over(order by id desc) as last2
    from Logs
)a
where Num=last1 and Num=last2

以上是关于Leetcode No.180 连续出现的数字的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷SQL 3连续出现的数字

LeetCode--SQL 查询:查找所有至少连续出现三次的数字。

leetcode180 连续出现的数字 Consecutive Numbers

SQL屠夫系列leetcode-180. 连续出现的数字-(实战扩展:连续登陆N天)

180. 连续出现的数字

LeetCode13. 罗马数字转整数 / 剑指 Offer 42. 连续子数组的最大和 / 剑指 Offer 43. 1~n 整数中 1 出现的次数