返回介绍

solution / 2100-2199 / 2112.The Airport With the Most Traffic / README

发布于 2024-06-17 01:03:09 字数 2809 浏览 0 评论 0 收藏 0

2112. 最繁忙的机场

English Version

题目描述

表: Flights

+-------------------+------+
| Column Name     | Type |
+-------------------+------+
| departure_airport | int  |
| arrival_airport   | int  |
| flights_count   | int  |
+-------------------+------+
(departure_airport, arrival_airport) 是该表的主键列。
该表的每一行都表示从 departure_airport 出发并到达 arrival_airport 的 flights_count 航班。

 

编写一个 SQL 来查询 流量最大 的机场的 ID。客流量最大的机场是指从该机场起飞或抵达该机场的航班总数最多的机场。如果有多个机场流量最大,请全部查询出来。

以 任意顺序 返回结果表。

查询结果格式如下所示。

 

示例 1:

输入: 
Flights 表:
+-------------------+-----------------+---------------+
| departure_airport | arrival_airport | flights_count |
+-------------------+-----------------+---------------+
| 1         | 2         | 4       |
| 2         | 1         | 5       |
| 2         | 4         | 5       |
+-------------------+-----------------+---------------+
输出: 
+------------+
| airport_id |
+------------+
| 2      |
+------------+
解释: 
1 号机场有 9 个航班 (4 个出发, 5 个到达).
2 号机场有 14 个航班 (10 个出发, 4 个到达).
4 号机场有 5 个航班 (5 个到达).
客流量最大的机场是 2 号机场。

示例 2:

输入: 
Flights 表:
+-------------------+-----------------+---------------+
| departure_airport | arrival_airport | flights_count |
+-------------------+-----------------+---------------+
| 1         | 2         | 4       |
| 2         | 1         | 5       |
| 3         | 4         | 5       |
| 4         | 3         | 4       |
| 5         | 6         | 7       |
+-------------------+-----------------+---------------+
输出: 
+------------+
| airport_id |
+------------+
| 1      |
| 2      |
| 3      |
| 4      |
+------------+
解释: 
1 号机场有 9 个航班 (4 个出发, 5 个到达).
2 号机场有 9 个航班 (5 个出发, 4 个到达).
3 号机场有 9 个航班 (5 个出发, 4 个到达).
4 号机场有 9 个航班 (5 个出发, 4 个到达).
5 号机场有 7 个航班 (7 个出发).
6 号机场有 7 个航班 (7 个到达).
流量最大的机场是机场 1、2、3 和 4。

解法

方法一

# Write your MySQL query statement below
WITH
  T AS (
    SELECT * FROM Flights
    UNION
    SELECT arrival_airport, departure_airport, flights_count FROM Flights
  ),
  P AS (
    SELECT departure_airport, SUM(flights_count) AS cnt
    FROM T
    GROUP BY 1
  )
SELECT departure_airport AS airport_id
FROM P
WHERE cnt = (SELECT MAX(cnt) FROM P);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文