题目
编写一个 SQL 查询,查找所有至少连续出现三次的数字。
+----+-----+
| Id | Num |
+----+-----+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 1 |
| 6 | 2 |
| 7 | 2 |
+----+-----+
例如,给定上面的 Logs表,1 是唯一连续出现至少三次的数字。
+-----------------+
| ConsecutiveNums |
+-----------------+
| 1 |
+-----------------+
思路
- 第一次想法
卧槽 这也太简单了吧???这也是中级难度???
group by + having count 完美解决。
结果一看,题目都没看清。要求连续出现数字是少三次。 - 第二次想法
select id , (
select a.t from (
select num
from Logs
where id >= l.id
limit 3
) a
group by a.num
having count(a.num) >=3
) as t
from logs as l
技术有限写不上去了
测试
- 第一次提交
select Num as ConsecutiveNums
from Logs
group by Num
having count(Num) >= 3
总结
实在是写不下去了。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/consecutive-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
网友评论