码迷,mamicode.com
首页 > 数据库 > 详细

180.Mysql之连续出现的数字

时间:2018-12-01 17:11:15      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:color   使用   关联表   mysql   解决方案   关联   tin   ons   方案   

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

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

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

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

解决方案:
  1. 使用临时表或者关联表存储不重复的数字
   2. 使用Having判断出现连续出现数字的次数和大于等于3
select l2.Num from Logs as l1
inner join (select distinct(Num) from Logs) as l2 on l1.Num = l2.Num
having sum(if(l1.Num >= l2.Num, 1, 0)) >= 3

 

 

180.Mysql之连续出现的数字

标签:color   使用   关联表   mysql   解决方案   关联   tin   ons   方案   

原文地址:https://www.cnblogs.com/chaplin-code/p/10049768.html

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