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

连续出现的数字

时间:2020-03-11 12:36:42      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:链接   连接   表连接   pre   count   sel   编写   HERE   join   

编写一个 SQL 查询,查找所有至少连续出现三次的数字。
+----+-----+
| Id | Num |
+----+-----+
| 1  |  1  |
| 2  |  1  |
| 3  |  1  |
| 4  |  2  |
| 5  |  1  |
| 6  |  2  |
| 7  |  2  |
+----+-----+

例如,给定上面的 Logs 表, 1 是唯一连续出现至少三次的数字。
+-----------------+
| ConsecutiveNums |
+-----------------+
| 1               |
+-----------------+
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/consecutive-numbers
sql语句如下:
select distinct Num ConsecutiveNums 
 from
 (select a.Num Num, count(b.Num) 总数
        from 
        Logs a join Logs b 
        on
        b.Id - a.Id <=2 and a.Num = b.Num and b.Id - a.Id >= 0
        group by a.Id
)t
where t.总数 >= 3

首先进行了双表连接,双表连接的条件是:id值的相差范围是0到2,而且Num相同;

然后从join表中选择出Num和Num出现的次数;

最后外层查询再从中选择出次数大于等于3的Num;

 

连续出现的数字

标签:链接   连接   表连接   pre   count   sel   编写   HERE   join   

原文地址:https://www.cnblogs.com/chxyshaodiao/p/12461407.html

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