详解SQL中连续N天都出现的问题
点击关注上方“SQL数据库开发”,
设为“置顶或星标”,第一时间送达干货
SELECT DISTINCT d.*
FROM stadium d,stadium a
WHERE ABS(DATEDIFF(DAY,d.date,a.date))<2 --求解时间差绝对值为1或0的日期
AND a.date IN
(
SELECT a.date
FROM stadium a,stadium b,stadium c
WHERE
DATEDIFF(DAY,a.date ,b.date)=1 --今天减去昨天
AND DATEDIFF(DAY,a.date,c.date)=-1 --今天前去明天
AND a.people >99
AND b.people > 99
AND c.people >99
)
(提示:可以左右滑动代码)
select DISTINCT s1.*
from stadium s1, stadium s2, stadium s3
where s1.people >= 100 and s2.people>= 100 and s3.people >= 100
and
(
(s1.id - s2.id = 1 and s2.id - s3.id =1)
or
(s2.id - s1.id = 1 and s1.id - s3.id =1)
or
(s3.id - s2.id = 1 and s2.id - s1.id = 1)
) order by s1.id;
最后给大家分享我写的SQL两件套:《SQL基础知识第二版》和《SQL高级知识第二版》的PDF电子版。里面有各个语法的解释、大量的实例讲解和批注等等,非常通俗易懂,方便大家跟着一起来实操。
有需要的读者可以下载学习,在下面的公众号「数据前线」(非本号)后台回复关键字:SQL,就行
数据前线
后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群
记得帮忙点「赞」和「在看」↓
谢谢啦
评论