【Leetcode】高频SQL基础题--180.连续出现的数字

【Leetcode】高频SQL基础题--180.连续出现的数字

复制代码
要求:找出所有至少连续出现三次的数字。返回的结果表中的数据可以按 任意顺序 排列。

解题思路:

1、使用SQL窗口函数LAG和LEAD 来获取当前行的前一个和后一个num值,然后检查这三个值是否相同。如果相同,则表示当前行是连续三个相同数字的中间行。

2、最后,使用DISTINCT来去重,确保每个数字只输出一次。

重点:

1、子查询:使用LAG (num, 1) OVER (ORDER BY id)获取当前行的前一个num值,使用LEAD(num, 1) OVER (ORDER BY id)获取当前行的后一个num值。ORDER BY id确保按id顺序处理行。

不熟悉窗口函数,难!

代码:

sql 复制代码
SELECT 
    DISTINCT num AS ConsecutiveNums
FROM (
    SELECT
        id,
        num,
        LAG(num, 1) OVER (ORDER BY id) AS prev_num,
        LEAD(num, 1) OVER (ORDER BY id) AS next_num
    FROM Logs
) t
WHERE 
    num = prev_num AND num = next_num;
    

中间结果:

相关推荐
凌波粒2 小时前
LeetCode--491.递增子序列(回溯算法)
数据结构·算法·leetcode
持敬chijing2 小时前
Web渗透之SQL注入-常用sql语句
sql·安全·web安全·网络安全
退休倒计时2 小时前
【每日一题】LeetCode 146. LRU 缓存 TypeScript
算法·leetcode·缓存·typescript
Theo·Chan2 小时前
更换 Kingbase V9 License 踩坑记
sql·信创·kingbase
小欣加油3 小时前
leetcode3612 用特殊操作处理字符串I
数据结构·c++·算法·leetcode·职场和发展
凌波粒3 小时前
LeetCode--90.子集II(回溯算法)
数据结构·算法·leetcode
凌波粒3 小时前
LeetCode--46.全排列(回溯算法)
数据结构·算法·leetcode
吃着火锅x唱着歌4 小时前
LeetCode 2530.执行K次操作后的最大分数
数据结构·算法·leetcode
Chengbei114 小时前
AISec真正拟人化全自动渗透工具!支持浏览器交互全自动化挖掘,SQL注入、XSS、越权等。
sql·安全·web安全·网络安全·自动化·系统安全·xss
sheeta19984 小时前
LeetCode 每日一题笔记 日期:2026.06.16 题目:3612. 字符串特殊符号处理
笔记·算法·leetcode