1.查询连续出现3次及以上的数字
思路:将表自连接2次,形成一个三个表拼接的大表。
拼接的过程中id号错位一次
形成: id [3 2 1; 4 3 2]等等情形,将表中的id好为2、3的与1的放到一行上来。
-- 创建figure表
create table figure(id int not null,
num int not null);
id int not null,
num int not null);
-- 输入数据
insert into figure (id,num)
values (1,1),
(2,1),
(3,1),
(4,2),
(5,1),
(6,2),
(7,2),
(8,3),
(9,3),
(10,3),
(11,3);
select * from figure f1 left join figure f2 on f1.id=f2.id+1
left join figure f3 on f1.id=f3.id+2; 结果如图一所示
-- 连续出现3次一样的数值
select distinct f1.num from figure f1 left join figure f2 on f1.id =f2.id+1
left join figure f3 on f1.id=f3.id+2
where f1.num=f2.num and f1.num=f3.num;
-- 结果只有 1、3