码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode]刷题---连续出现的数字

时间:2018-04-24 17:37:15      阅读:1984      评论:0      收藏:0      [点我收藏+]

标签:查找   tco   sel   数字   查询   and   code   sql   重点   

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

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

例如,给定上面的 Logs 表, 1 是唯一连续出现至少三次的数字。

+-----------------+
| ConsecutiveNums |
+-----------------+
| 1               |
+-----------------+

看到这种题目,博主一开始脑子一片空白,不知如何下手,毕竟以前没遇到过这种类型的sql查询,这题的重点是连续。
其实也很简单,连续,无非就是将三张表连接起来,然后ID是递增,并且Num相等。

解法一:多表查询
  select
    distinct l1.Num
  from
    Logs l1,
    Logs l2,
    Logs l3
  where
    l1.`Id`=l2.`Id`-1
  and
    l2.`Id`=l3.`Id`-1
  and
    l1.`Num`=l2.`Num`
  and
    l2.`Num`=l3.`Num`;  

解法二:联表查询
  select
    distinct l1.Num
  from
    Logs l1
  join
    Logs l2 on l1.Id=l2.Id-1
  join
    Logs l3 on l2.Id=l3.Id-1
  where
    L1.Num=L2.Num
  and
    L2.Num=L3.Num;

[LeetCode]刷题---连续出现的数字

标签:查找   tco   sel   数字   查询   and   code   sql   重点   

原文地址:https://www.cnblogs.com/johnson108178/p/8931031.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!