力扣sql中等篇练习(二十五)

力扣sql中等篇练习(二十五)

1 最繁忙的机场

1.1 题目内容

1.1.1 基本题目信息

在这里插入图片描述

1.1.2 示例输入输出
a 示例输入

在这里插入图片描述

b 示例输出

在这里插入图片描述

1.2 示例sql语句

# Write your MySQL query statement below
WITH T as
(
    SELECT t.airport_id,SUM(n) num
    FROM
    (
       SELECT departure_airport airport_id,flights_count n
       FROM Flights 
       UNION ALL
       SELECT arrival_airport airport_id,flights_count n
       FROM Flights 
    )t
    GROUP BY t.airport_id
)
SELECT airport_id
FROM T
WHERE num=
(
    SELECT MAX(num)
    FROM T
)

1.3 运行截图

在这里插入图片描述

2 每辆车的乘客人数I

2.1 题目内容

2.1.1 基本题目信息1

在这里插入图片描述

2.1.2 基本题目信息2

在这里插入图片描述

2.1.3 示例输入输出
a 示例输入

在这里插入图片描述

b 示例输出

在这里插入图片描述

2.2 示例sql语句

# 满足乘车条件的车辆很多,需要选最早达到时间的那辆
# 然后与公交达到时间表右外连接即可
# 计算连接后的个数,应该count(另外一个表的非连接字段)
SELECT b1.bus_id,IFNULL(count(t.passenger_id),0) passengers_cnt
FROM
(
    SELECT p.passenger_id,MIN(b.arrival_time) min_arrival_time
    FROM Buses b
    LEFT JOIN Passengers p
    ON p.arrival_time<=b.arrival_time
    GROUP BY p.passenger_id
)t
RIGHT JOIN Buses b1
ON b1.arrival_time=t.min_arrival_time
GROUP BY b1.bus_id
ORDER BY b1.bus_id asc


2.3 运行截图

在这里插入图片描述

3 分别排序两列

3.1 题目内容

3.1.1 基本题目信息

在这里插入图片描述

3.1.2 示例输入输出

在这里插入图片描述

3.2 示例sql语句

#  ROW_NUMBER() OVER(ORDER BY 列名 升序或者降序) 给出对应序列的排名
SELECT t1.first_col,t2.second_col
FROM
(
    SELECT first_col,ROW_NUMBER() over(ORDER BY first_col asc) r
    FROM Data
) t1
INNER JOIN
(
    SELECT second_col,ROW_NUMBER() OVER(ORDER BY second_col desc) r
    FROM Data
) t2
ON t1.r=t2.r

3.3 运行截图

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SSS4362

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值