601-体育馆的人流量

601-体育馆的人流量

1. 题目

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

2. 思路

思路:查询Stadium表中人流量超过100的记录,将查询结果与自身的临时表连接,再使用where获得满足条件的记录

  1. 查询Stadium表中人流量超过100的记录

    select t1.*
    from Stadium t1, Stadium t2, Stadium t3
    where t1.people >= 100 and t2.people >= 100 and t3.people >= 100;
    

    查询结果如下:

    idvisit_datepeople
    22017-01-02109
    32017-01-03150
    52017-01-05145
    62017-01-061455
    72017-01-07199
    82017-01-09188
    22017-01-02109
    32017-01-03150
    52017-01-05145
    62017-01-061455
    72017-01-07199
    82017-01-09188
    22017-01-02109
    32017-01-03150
    52017-01-05145
    62017-01-061455
    72017-01-07199
    82017-01-09188
    22017-01-02109
    32017-01-03150
    52017-01-05145
    62017-01-061455
    72017-01-07199
    82017-01-09188
    22017-01-02109
    32017-01-03150
    52017-01-05145
    62017-01-061455
    72017-01-07199
    82017-01-09188
    22017-01-02109
    32017-01-03150
    52017-01-05145
    62017-01-06
  2. 添加id连续的三行或更多记录

    select t1.*
    from Stadium t1, Stadium t2, Stadium t3
    where t1.people >= 100 and t2.people >= 100 and t3.people >= 100
    # 添加id连续的三行或更多记录
    and
    (
      (t1.id - t2.id = 1 and t1.id - t3.id = 2 and t2.id - t3.id = 1)  # t1 t2 t3
      or
      (t2.id - t1.id = 1 and t2.id - t3.id = 2 and t1.id - t3.id = 1)  # t2 t1 t3
      or
      (t3.id - t1.id = 2 and t3.id - t2.id = 1 and t2.id - t1.id = 1)  # t3 t2 t1
    );
    
    idvisit_datepeople
    62017-01-061455
    72017-01-07199
    72017-01-07199
    82017-01-09188
    52017-01-05145
    62017-01-061455
  3. distinct去重
    在这里插入图片描述

    idvisit_datepeople
    62017-01-061455
    72017-01-07199
    82017-01-09188
    52017-01-05145
  4. 根据id排序

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

3. 解决

# Write your MySQL query statement below
# 思路:查询Stadium表中人流量超过100的记录,将查询结果与自身的临时表连接,再使用where获得满足条件的记录

# 第一步:查询人流量超过100的记录
select distinct t1.*
from Stadium t1, Stadium t2, Stadium t3
where t1.people >= 100 and t2.people >= 100 and t3.people >= 100
# 添加id连续的三行或更多记录
and
(
  (t1.id - t2.id = 1 and t1.id - t3.id = 2 and t2.id - t3.id = 1)  # t1 t2 t3
  or
  (t2.id - t1.id = 1 and t2.id - t3.id = 2 and t1.id - t3.id = 1)  # t2 t1 t3
  or
  (t3.id - t1.id = 2 and t3.id - t2.id = 1 and t2.id - t1.id = 1)  # t3 t2 t1
)
order by t1.id;


4. 运行结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值