LeetCode MySQL 180. 连续出现的数字(cast)
发布日期:2021-07-01 03:30:48
浏览次数:2
分类:技术文章
本文共 1197 字,大约阅读时间需要 3 分钟。
文章目录
1. 题目
编写一个 SQL 查询,查找所有至少连续出现三次的数字。
+----+-----+| Id | Num |+----+-----+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 || 5 | 1 || 6 | 2 || 7 | 2 |+----+-----+例如,给定上面的 Logs 表, 1 是唯一连续出现至少三次的数字。+-----------------+| ConsecutiveNums |+-----------------+| 1 |+-----------------+
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/consecutive-numbers 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
select num, row_number() over(partition by Num) rnkfrom Logs
{ "headers": ["num", "rnk"], "values": [[1, 1], [1, 2], [1, 3], [1, 4], [2, 1], [2, 2], [2, 3]]}
select num, Id-cast(row_number() over(partition by Num) as signed) rnkfrom Logs
{ "headers": ["num", "rnk"], "values": [[1, 0], [1, 0], [1, 0], [1, 1], [2, 3], [2, 4], [2, 4]]}
# Write your MySQL query statement belowselect distinct num ConsecutiveNumsfrom( select num, Id-cast(row_number() over(partition by Num) as signed) rnk from Logs) tgroup by num, rnkhaving count(*) >= 3
或者
# Write your MySQL query statement belowselect distinct a.num ConsecutiveNumsfrom Logs a, Logs b, Logs cwhere a.Id = b.Id+1 and b.Id = c.Id+1 and a.Num = b.Num and b.Num = c.Num
我的CSDN
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
转载地址:https://michael.blog.csdn.net/article/details/107735590 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月22日 00时58分36秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
C++ std::move的使用和使用
2019-05-02
C++ Template类模板(3.1节,3.2节)
2019-05-02
C++11 bind函数
2019-05-02
C++四种类型转换使用示例
2019-05-02
C++ Template类模板的特化(3.3节, 3.4节)
2019-05-02
第05章 函数
2019-05-02
第06章 字符串
2019-05-02
第07章 数据结构
2019-05-02
第08章 输入和输出
2019-05-02
第09章 异常处理
2019-05-02
第10章 面向对象编程
2019-05-02
第11章 案例研究: 文本统计
2019-05-02
qml drag listview
2019-05-02
Linux下QT中执行shell命令
2019-05-02
QT中文乱码的解
2019-05-02
QT 读取txt 文件
2019-05-02
Qt for Android 部署流程分析
2019-05-02
Qt中使用QQueue模拟消息队列
2019-05-02
SVN命令使用详解
2019-05-02