SQL LeetCode刷题系列(九)——体育馆的人流量

题目描述

X 市建了一个新的体育馆,每日人流量信息被记录在这三列信息中:序号 (id)、日期 (visit_date)、 人流量 (people)。

请编写一个查询语句,找出人流量的高峰期。高峰期时,至少连续三行记录中的人流量不少于100。

在这里插入图片描述
在这里插入图片描述

题解

SELECT A.*
FROM
    stadium A
INNER JOIN
    stadium B
ON A.id=B.id+1
INNER JOIN
    stadium C
ON A.id=C.id+2
WHERE A.people>=100
    AND B.people>=100
    AND C.people>=100
UNION
SELECT B.*
FROM
    stadium A
INNER JOIN
    stadium B
ON A.id=B.id+1
INNER JOIN
    stadium C
ON A.id=C.id+2
WHERE A.people>=100
    AND B.people>=100
    AND C.people>=100
UNION
SELECT C.*
FROM
    stadium A
INNER JOIN
    stadium B
ON A.id=B.id+1
INNER JOIN
    stadium C
ON A.id=C.id+2
WHERE A.people>=100
    AND B.people>=100
    AND C.people>=100
ORDER BY id;

解题思路

这一题和我们上次做过的一个题很像
SQL LeetCode刷题系列(六)——连续出现的数字
但是连续出现的数字只需要把数字选出来就可以了,同样用到了三表联合,而这一题不仅仅要用到三表联合,还要将连续不少于100的人流量记录筛选出来,所以会连续union两次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值