LeetCode 2793. 航班機票狀態(tài)
題目描述
表:?Flights
+-------------+------+
| 列名 ? ? ? ?| 類型 |
?+-------------+------+
| flight_id ? | int ?|
| capacity ? ?| int ?|
?+-------------+------+
flight_id 是該表的主鍵列。 每行包含航班 id 和座位容量。
表:Passengers
+--------------+----------+
?| 列名 ? ? ? ? | 類型 |?
+--------------+----------+
?| passenger_id | int ? ? ?|?
| flight_id ? ?| int ? ? ?|
| booking_time | datetime |?
+--------------+----------+?
passenger_id 是該表的主鍵。 booking_time 包含不同的值。 每行包含乘客 id、預訂時間和所預訂的航班 id。
乘客提前預訂航班機票。如果乘客預訂了一張航班機票,并且航班上還有空座位,則乘客的機票將?得到確認?。然而,如果航班已經滿員,乘客將被列入?等候名單?。
編寫一個 SQL 查詢來確定每個乘客航班機票的當前狀態(tài)。
按?passenger_id
?升序排序?返回結果表。
查詢結果的格式如下所示。
?
示例 1:
輸入:
Flights 表:?
+-----------+----------+?
| flight_id | capacity |
+-----------+----------+?
| 1 ? ? ? ? | 2 ? ? ? ?|?
| 2 ? ? ? ? | 2 ? ? ? ?|?
| 3 ? ? ? ? | 1 ? ? ? ?|?
+-----------+----------+?
Passengers 表:
+--------------+-----------+---------------------+
?| passenger_id | flight_id | booking_time ? ? ? ?|?
+--------------+-----------+---------------------+
?| 101 ? ? ? ? ?| 1 ? ? ? ? | 2023-07-10 16:30:00 |
| 102 ? ? ? ? ?| 1 ? ? ? ? | 2023-07-10 17:45:00 |
?| 103 ? ? ? ? ?| 1 ? ? ? ? | 2023-07-10 12:00:00 |
?| 104 ? ? ? ? ?| 2 ? ? ? ? | 2023-07-05 13:23:00 |?
| 105 ? ? ? ? ?| 2 ? ? ? ? | 2023-07-05 09:00:00 |
?| 106 ? ? ? ? ?| 3 ? ? ? ? | 2023-07-08 11:10:00 |
?| 107 ? ? ? ? ?| 3 ? ? ? ? | 2023-07-08 09:10:00 |
?+--------------+-----------+---------------------+
輸出:
+--------------+-----------+
| passenger_id | Status ? ?|
+--------------+-----------+
?| 101 ? ? ? ? ?| Confirmed |?
?| 102 ? ? ? ? ?| Waitlist ?|?
?| 103 ? ? ? ? ?| Confirmed |
| 104 ? ? ? ? ?| Confirmed |
| 105 ? ? ? ? ?| Confirmed |
| 106 ? ? ? ? ?| Waitlist ?|?
| 107 ? ? ? ? ?| Confirmed |
?+--------------+-----------+
解釋:- 航班 1 的容量為 2 位乘客。乘客 101 和乘客 103 是最先預訂機票的,已經確認他們的預訂。然而,乘客 102 是第三位預訂該航班的乘客,這意味著沒有更多的可用座位。乘客 102 現在被列入等候名單。 - 航班 2 的容量為 2 位乘客,已經有兩位乘客預訂了機票,乘客 104 和乘客 105。由于預訂機票的乘客數與可用座位數相符,這兩個預訂都得到了確認。 - 航班 3 的容量為 1 位乘客,乘客 107 先預訂并獲得了唯一的可用座位,確認了他們的預訂。預訂時間在乘客 107 之后的乘客 106 被列入等候名單。
解法