任务描述
本关任务:某市建了一个新的体育馆,每日人流量信息被记录在gymnasium
表中:序号 (id
)、日期 (date
)、 人流量 (visitors_flow
)。
请编写一个查询语句,找出人流量处于高峰的记录 id、日期 date 和人流量 visitors_flow,其中高峰定义为前后连续三天人流量均不少于 100。
gymnasium
表结构数据如下:
id | date | visitors_flow |
---|---|---|
1 | 2019-01-01 | 58 |
2 | 2019-01-02 | 110 |
3 | 2019-01-03 | 123 |
4 | 2019-01-04 | 67 |
5 | 2019-01-05 | 168 |
6 | 2019-01-06 | 1352 |
7 | 2019-01-07 | 382 |
8 | 2019-01-08 | 326 |
9 | 2019-01-09 | 99 |
提示:每天只有一行记录,日期随着 id
的增加而增加。
相关知识
略
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End
区域内进行代码补充。
测试说明
补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。
预期输出:
+----+------------+---------------+
| id | date | visitors_flow |
+----+------------+---------------+
| 5 | 2019-01-05 | 168 |
| 6 | 2019-01-06 | 1352 |
| 7 | 2019-01-07 | 382 |
| 8 | 2019-01-08 | 326 |
+----+------------+---------------+
开始你的任务吧,祝你成功!
#请在此添加实现代码
########## Begin ##########
SELECT DISTINCT a.* FROM gymnasium as a,gymnasium as b,gymnasium as c
WHERE(a.visitors_flow >= 100 AND b.visitors_flow >= 100 AND c.visitors_flow >= 100)
AND(
(a.id = b.id-1 AND b.id = c.id-1 )or
(a.id = b.id-1 AND a.id = c.id+1 )or
(a.id = b.id+1 AND b.id = c.id+1 )
) ORDER BY id;
########## End ##########