#1173
Easy Database Immediate food delivery i
Database
80.7% acceptance
Mar 31, 2026
304
13
No description available.
Solution
Pandas
Time O(1)
Space O(1)
# Table: Delivery
#
# +-----------------------------+---------+
# | Column Name | Type |
# +-----------------------------+---------+
# | delivery_id | int |
# | customer_id | int |
# | order_date | date |
# | customer_pref_delivery_date | date |
# +-----------------------------+---------+
# delivery_id is the primary key (column with unique values) of this table.
# The table holds information about food delivery to customers that make orders at some date and specify a preferred delivery date (on the same order date or after it).
#
#
#
# If the customer's preferred delivery date is the same as the order date, then the order is called immediate; otherwise, it is called scheduled.
#
# Write a solution to find the percentage of immediate orders in the table, rounded to 2 decimal places.
#
# The result format is in the following example.
#
# Example 1:
# Input:
# Delivery table:
# +-------------+-------------+------------+-----------------------------+
# | delivery_id | customer_id | order_date | customer_pref_delivery_date |
# +-------------+-------------+------------+-----------------------------+
# | 1 | 1 | 2019-08-01 | 2019-08-02 |
# | 2 | 5 | 2019-08-02 | 2019-08-02 |
# | 3 | 1 | 2019-08-11 | 2019-08-11 |
# | 4 | 3 | 2019-08-24 | 2019-08-26 |
# | 5 | 4 | 2019-08-21 | 2019-08-22 |
# | 6 | 2 | 2019-08-11 | 2019-08-13 |
# +-------------+-------------+------------+-----------------------------+
# Output:
# +----------------------+
# | immediate_percentage |
# +----------------------+
# | 33.33 |
# +----------------------+
# Explanation: The orders with delivery id 2 and 3 are immediate while the others are scheduled.
import pandas as pd
def food_delivery(delivery: pd.DataFrame) -> pd.DataFrame:
immediate = (delivery['order_date'] == delivery['customer_pref_delivery_date']).sum()
total = len(delivery)
return pd.DataFrame({'immediate_percentage': [round(immediate / total * 100, 2)]})