180. 连续出现的数字

题目

编写一个 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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

你可能感兴趣的:(180. 连续出现的数字)