力扣第601题:体育馆的人流量(延伸:获取连续登陆天数、连续签到天数等)

一、力扣原题:体育馆的人流量

题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/human-traffic-of-stadium

以下是力扣原题:

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

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

例如,表 stadium:
在这里插入图片描述
对于上面的示例数据,输出为:
在这里插入图片描述
提示:
每天只有一行记录,日期随着 id 的增加而增加。

题解:
方法:使用 JOINWHERE 子句。
思路:

  • 在表 stadium 中查询人流量超过 100 的记录,将查询结果与其自身的临时表连接,再使用 WHERE
    子句获得满足条件的记录。

  • a,b 和 c 相同,重点是需要考虑添加哪些条件能够得到想要的结果。以 a为例,它有可能是高峰期的第 1 天,第 2 天,或第
    3 天。

  • 用排列的方式的话有6个条件
    (1、a是高峰期第1天,b是高峰期第2天,c是高峰期第3天;
    2、a是高峰期第1天,b是高峰期第3天,c是高峰期第2天;
    3、a是高峰期第2天,b是高峰期第1天,c是高峰期第3天;
    4、a是高峰期第2天,b是高峰期第3天,c是高峰期第1天;
    5、a是高峰期第3天,b是高峰期第1天,c是高峰期第2天;
    6、a是高峰期第3天,b是高峰期第2天,c是高峰期第1天;)

根据上面的思路给出SQL语句如下:

select distinct a.* from stadium a,stadium b,stadium c
where a.people>=100 and b.people
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值