[LeetCode]刷题---连续出现的数字
Posted johnson108178
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode]刷题---连续出现的数字相关的知识,希望对你有一定的参考价值。
编写一个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]刷题---连续出现的数字的主要内容,如果未能解决你的问题,请参考以下文章