Leetcode HARD 1651 — вопрос на собеседовании в UBER: объяснение рекурсивного CTE в SQL | Повседне...

Вопрос:
SQL-схема: Создать таблицу «Если не существует: Водители» (driver_id — целое число, join_date — дата) Создать таблицу «Если не существует: Поездки» (ride_id — целое число, user_id — целое число, requested_at — дата) Создать таблицу «Если не существует: Принятые поездки» (ride_id — целое число, driver_id — целое число, ride_distance — целое число, ride_duration — целое число) Очистить таблицу «Водители» Вставить в таблицу «Водители» (driver_id, join_date) значения ('10', '10.12.2019') Вставить в таблицу «Водители» (driver_id, join_date) значения ('8', '13.01.2020') Вставить в таблицу «Водители» (driver_id, join_date) значения ('5', '2020-2-16') Вставить в таблицу "Водители" (driver_id, join_date) значения ('7', '2020-3-8') Вставить в таблицу "Водители" (driver_id, join_date) значения ('4', '2020-5-17') Вставить в таблицу "Водители" (driver_id, join_date) значения ('1', '2020-10-24') Вставить в таблицу "Водители" (driver_id, join_date) значения ('6', '2021-1-5') Очистить таблицу "Поездки" Вставить в таблицу "Поездки" (ride_id, user_id, requested_at) значения ('6', '75', '2019-12-9') Вставить в таблицу "Поездки" (ride_id, user_id, requested_at) значения ('1', '54', '2020-2-9') Вставить в данные о поездках (ride_id, user_id, requested_at) значения ('10', '63', '2020-3-4') Вставить в данные о поездках (ride_id, user_id, requested_at) значения ('19', '39', '2020-4-6') Вставить в данные о поездках (ride_id, user_id, requested_at) значения ('3', '41', '2020-6-3') Вставить в данные о поездках (ride_id, user_id, requested_at) значения ('13', '52', '2020-6-22') Вставить в данные о поездках (ride_id, user_id, requested_at) значения ('7', '69', '2020-7-16') Вставить в данные о поездках (ride_id, Значения user_id, requested_at ('17', '70', '2020-8-25') Вставить в Rides (ride_id, user_id, requested_at) значения ('20', '81', '2020-11-2') Вставить в Rides (ride_id, user_id, requested_at) значения ('5', '57', '2020-11-9') Вставить в Rides (ride_id, user_id, requested_at) значения ('2', '42', '2020-12-9') Вставить в Rides (ride_id, user_id, requested_at) значения ('11', '68', '2021-1-11') Вставить в Rides (ride_id, user_id, requested_at) значения ('15', '32', '2021-1-17') Вставить в таблицу Rides (ride_id, user_id, requested_at) значения ('12', '11', '2021-1-19') Вставить в таблицу Rides (ride_id, user_id, requested_at) значения ('14', '18', '2021-1-27') Очистить таблицу AcceptedRides Вставить в таблицу AcceptedRides (ride_id, driver_id, ride_distance, ride_duration) значения ('10', '10', '63', '38') Вставить в таблицу AcceptedRides (ride_id, driver_id, ride_distance, ride_duration) значения ('13', '10', '73', '96') Вставить в таблицу AcceptedRides (ride_id, driver_id, ride_distance, Значения ride_duration ('7', '8', '100', '28') Вставить в AcceptedRides (ride_id, driver_id, ride_distance, ride_duration) значения ('17', '7', '119', '68') Вставить в AcceptedRides (ride_id, driver_id, ride_distance, ride_duration) значения ('20', '1', '121', '92') Вставить в AcceptedRides (ride_id, driver_id, ride_distance, ride_duration) значения ('5', '7', '42', '101') Вставить в AcceptedRides (ride_id, driver_id, ride_distance, ride_duration) значения ('2', '4', '6', '38') Вставить в AcceptedRides Значения (ride_id, driver_id, ride_distance, ride_duration) ('11', '8', '37', '43') Вставить в AcceptedRides (ride_id, driver_id, ride_distance, ride_duration) значения ('15', '8', '108', '82') Вставить в AcceptedRides (ride_id, driver_id, ride_distance, ride_duration) значения ('12', '8', '38', '34') Вставить в AcceptedRides (ride_id, driver_id, ride_distance, ride_duration) значения ('14', '1', '90', '74') Схема Pandas: data = [[10, '2019-12-10'], [8, '13.1.2020'], [5, '16.02.2020'], [7, '08.03.2020'], [4, 17.05.2020'], [1, 24.10.2020'], [6, 05.01.2021']] drivers = pd.DataFrame(data, columns=['driver_id', 'join_date']).astype({'driver_id':'Int64', 'join_date':'datetime64[ns]'}) data = [[6, 75, '09.12.2019'], [1, 54, '09.02.2020'], [10, 63, '04.03.2020'], [19, 39, '06.04.2020'], [3, 41, '3 июня 2020 г.'], [13, 52, '22 июня 2020 г.'], [7, 69, '16 июля 2020 г.'], [17, 70, '25 августа 2020 г.'], [20, 81, '2 ноября 2020 г.'], [5, 57, '9 ноября 2020 г.'], [2, 42, '9 декабря 2020 г.'], [11, 68, '11 января 2021 г.'], [15, 32, '17 января 2021 г.'], [12, 11, '19 января 2021 г.'], [14, 18, '27 января 2021 г.']] поездки = pd.DataFrame(data, columns=['ride_id', 'user_id', 'requested_at']).astype({'ride_id':'Int64', 'user_id':'Int64', 'requested_at':'datetime64[ns]'}) data = [[10, 10, 63, 38], [13, 10, 73, 96], [7, 8, 100, 28], [17, 7, 119, 68], [20, 1, 121, 92], [5, 7, 42, 101], [2, 4, 6, 38], [11, 8, 37, 43], [15, 8, 108, 82], [12, 8, 38, 34], [14, 1, 90, 74]] accepted_rides = pd.DataFrame(data, columns=['ride_id', 'driver_id', 'ride_distance', 'ride_duration']).astype({'ride_id':'Int64', 'driver_id':'Int64', 'ride_distance':'Int64', 'ride_duration':'Int64'}) #leetcode...

Смотрите также