Food Delivery Dataset for SQL Database Analysis
This ready-made food delivery dataset is designed for SQL database analysis. It contains 14,084 rows across 5 tables, covering customer information, restaurant details, orders, and delivery logistics. The data spans from February 29, 2020, to July 1, 2024, providing a recent snapshot for practice.
At a glance
- 5tables
- 14,084rows
- 27columns
- Feb 2020 – Jul 2024date range
The 5 tables
preview and data dictionary per tableCustomers customers · table · 3,000 rows
Contains information about registered customers.
Preview
| customer_iduuid | customer_namestring | customer_emailstring | customer_addressstring | customer_citystring | customer_statestring | signup_datedate |
|---|---|---|---|---|---|---|
| fcfdc668-9573-4f39-95a3-587c623167b3 | Robert Jones | [email protected] | 123 Maple Street, Los Angeles, CA | Los Angeles | CA | 2022-09-20 |
| e7e23f7e-968b-439a-a478-0a37d7a1027f | Olivia Garcia | [email protected] | 456 Oak Avenue, New York, NY | New York | NY | 2024-02-18 |
| b3090a27-b228-401a-8c0b-924d599fd341 | Sophia Martinez | [email protected] | 789 Pine Lane, San Francisco, CA | San Francisco | CA | 2022-12-14 |
| f03161d3-f85a-404b-b9d4-1bd4662af2c8 | Noah Rodriguez | [email protected] | 101 Elm Drive, New York, NY | New York | NY | 2023-03-01 |
| ac944a28-caa2-4ed7-95ce-54c44fe057ec | Emma Hernandez | [email protected] | 202 Birch Road, Los Angeles, CA | Los Angeles | CA | 2020-01-18 |
| 4ef8e912-aa0f-4708-9af5-7e920bef1ea6 | Ethan Lopez | [email protected] | 303 Cedar Court, New York, NY | New York | NY | 2023-08-30 |
| d326836e-6533-4963-a860-f347c2d718b4 | Ava Gonzalez | [email protected] | 404 Spruce Way, Los Angeles, CA | Los Angeles | CA | 2023-10-21 |
| b25927e5-5cce-45dd-ba52-a32e96959113 | Liam Wilson | [email protected] | 505 Walnut Circle, Los Angeles, CA | Los Angeles | CA | 2022-07-15 |
| f365f09a-151f-4444-80a9-f82329bfe559 | Mia Anderson | [email protected] | 606 Cherry Street, Seattle, WA | Seattle | WA | 2020-10-12 |
| 035b3a10-74ba-42c3-9230-9888467db4c3 | James Thomas | [email protected] | 707 Poplar Avenue, New York, NY | New York | NY | 2023-04-15 |
Data dictionary
| column | type | description | example | null % |
|---|---|---|---|---|
customer_ | uuid | Primary key identifier for each unique customer.unique | fcfdc668-9573-4f39-95a3-587c623167b3 | 0% |
customer_ | string | Full legal name of the registered customer. | Robert Jones | 0% |
customer_ | string | Contact and login email address for the customer account.unique | [email protected] | 0% |
customer_ | string | Primary street address for delivery drop-offs. | 123 Maple Street, Los Angeles, CA | 0% |
customer_ | string | City where the customer resides. | Los Angeles | 0% |
customer_ | string | Two-letter US state postal abbreviation. | CA | 0% |
signup_ | date | Date on which the customer account was created. | 2022-09-20 | 0% |
Drivers drivers · dimension table · 498 rows
Information about the delivery drivers.
Preview
| driver_iduuid | driver_namestring | driver_phonestring | vehicle_typestring |
|---|---|---|---|
| f1796792-1cc4-4d1c-ac6e-16fd2d986cc6 | Thomas Smith-Jones | +15551234567 | Motorcycle |
| 6e0047bc-769f-4178-9233-7961bd24d5bb | Beatrice O'Malley | +15551234568 | Motorcycle |
| 67cc56b6-4b22-48a5-92ba-079cc3ed8372 | Charles Dubois | +15551234569 | Motorcycle |
| 81e946ec-55de-4809-8515-b4488491f0d0 | Diana Garcia-Lopez | +15551234570 | Motorcycle |
| edb0b9dd-1072-4a66-998c-90b6c54ba3a6 | Ethan Kim | +15551234571 | Motorcycle |
| 11aced29-923f-421b-bbd7-4888d250bc1f | Fiona Campbell | +15551234572 | Motorcycle |
| e13c818c-536e-4175-b726-bd67087a1100 | George Rodriguez | +15551234573 | Motorcycle |
| bf413cf4-d54f-4eaf-bc85-95db1ef57056 | Hannah Lee | +15551234574 | Motorcycle |
| f8ce5b8c-8b30-45bd-9b1c-13ec37762700 | Isaac Patel | +15551234575 | Motorcycle |
| c15cd763-6123-4966-9de5-afca22fa6f4c | Jasmine Williams | +15551234576 | Motorcycle |
Data dictionary
| column | type | description | example | null % |
|---|---|---|---|---|
driver_ | uuid | Unique identifier for the delivery driver (primary key).unique | f1796792-1cc4-4d1c-ac6e-16fd2d986cc6 | 0% |
driver_ | string | Full name of the delivery driver. | Thomas Smith-Jones | 0% |
driver_ | string | Unique contact phone number for the delivery driver in E.164 standard format.unique | +15551234567 | 0% |
vehicle_ | string | Mode of transportation used by the driver for deliveries. | Motorcycle | 0% |
Restaurants restaurants · dimension table · 100 rows
Details about the partner restaurants.
Preview
| restaurant_iduuid | restaurant_namestring | restaurant_citystring | restaurant_cuisine_typestring |
|---|---|---|---|
| d934cfa8-972c-47d3-a97e-b3befa844c5b | Spice of India | San Diego | Indian |
| 192d3d14-4955-41a4-a449-3eedf60ae351 | The Urban Spoon | New York | Other |
| 3dffe1e8-6a39-4525-9335-8bf33d38ad74 | Bombay Palace | Los Angeles | Indian |
| f4eea4fb-9dfc-4974-bd05-a6f0c36e9ed8 | LA Food Hub | Los Angeles | Other |
| 020f15a4-0c15-4a1d-a70f-0d6bc7350b95 | Metro Bites | New York | Other |
| 0dfb5c6b-c40e-471d-9235-557f67cf3636 | Philly Flavors | Philadelphia | Other |
| 94f51899-5cfc-4f86-b6c1-15cd3d5ab913 | Desert Delights | Phoenix | Other |
| 44244eb7-17ec-482f-be6b-f18ea5486e51 | Curry House Chicago | Chicago | Indian |
| e4797e4d-858d-4fd8-bf1e-9ff5ae73052d | San Diego Eats | San Diego | Other |
| f832d6a4-7433-4d52-9237-395d4abe6373 | Liberty Bell Grub | Philadelphia | Other |
Data dictionary
| column | type | description | example | null % |
|---|---|---|---|---|
restaurant_ | uuid | Unique identifier for the partner restaurant.unique | d934cfa8-972c-47d3-a97e-b3befa844c5b | 0% |
restaurant_ | string | Trading name of the restaurant establishment. | Spice of India | 0% |
restaurant_ | string | Operating city of the restaurant. | San Diego | 0% |
restaurant_ | string | Primary cuisine type served by the restaurant. | Indian | 0% |
Orders orders · fact table · 5,243 rows
Records of customer food orders.
Preview
| order_iduuid | order_datetimedatetime | order_total_amountdecimal | order_statusstring | delivery_feedecimal | customer_iduuid |
|---|---|---|---|---|---|
| 52ef47c2-b0bc-4538-a089-1e4dd712ade4 | 2024-02-23 18:41:53 | 31.87 | Completed | 2.91 | 137595d5-fc1e-4492-9872-9f44299edf99 |
| 16efc2e7-2390-431f-a610-9ed2f932f936 | 2023-06-13 18:33:41 | 20.26 | Completed | 3.68 | b20f5d45-3a87-46ae-805d-d872135f7c3a |
| fbffead4-cea2-4faa-96f7-7b6b9d0c8816 | 2021-12-18 17:35:55 | 36.82 | Completed | 3.31 | a5e96496-783b-4f73-8e9c-3c9447bd8262 |
| 962941b6-187f-4a70-b328-f133655472f9 | 2024-02-10 16:00:51 | 17.36 | Completed | 3.48 | 134b8ad5-359c-43e7-957a-8d0e74bed3d7 |
| f1f5d2c7-4f14-49e1-b9e8-1d0f3072ed3b | 2022-11-11 21:24:43 | 23.2 | Completed | 3.06 | 6356f848-373c-48d9-99fb-bd53ff10bb61 |
| 7887c3cf-8331-404c-a2d6-d0e4f5e90c8e | 2023-08-31 12:11:02 | 37.78 | Completed | 3.47 | 70e35fcf-d491-4831-8d09-ec56e21b5bb4 |
| 359cd556-5b47-49fb-9848-4a9c383b5f38 | 2024-04-11 10:32:44 | 21.11 | Completed | 4.06 | a60a3b36-d5d5-4655-9010-29c5279e7c68 |
| 597d2569-9e9e-431e-ba53-1acc0c8374c7 | 2024-03-08 15:08:19 | 33.68 | Completed | 4.13 | 340a5074-4b0f-4006-a7f5-a019827b73f0 |
| c9ec87b5-8e09-454f-b744-1e1dc53c36e9 | 2022-10-09 14:20:47 | 30.96 | Completed | 1.66 | a424da83-a7fd-41e8-8bd3-7be827e76dad |
| e0b47a5b-7f02-434e-8b1a-bf496ee058cf | 2023-07-14 17:37:36 | 27.9 | Completed | 4.16 | 847eaa68-7662-4f6e-972b-52197621a26c |
Data dictionary
| column | type | description | example | null % |
|---|---|---|---|---|
order_ | uuid | Unique identifier for the food delivery order. | 52ef47c2-b0bc-4538-a089-1e4dd712ade4 | 0% |
order_ | datetime | Timestamp when the customer placed the order. | 2024-02-23 18:41:53 | 0% |
order_ | decimal | Total monetary amount for the meal order in USD. | 31.87 | 0% |
order_ | string | Current fulfillment status of the order. | Completed | 0% |
delivery_ | decimal | Delivery fee charged for the order in USD. | 2.91 | 0% |
customer_ | uuid | Foreign key to customers.customer_id. | 137595d5-fc1e-4492-9872-9f44299edf99 | 0% |
Deliveries deliveries · fact table · 5,243 rows
Information related to the delivery of orders.
Preview
| delivery_iduuid | pickup_datetimedatetime | delivery_datetimedatetime | delivery_regionstring | order_iduuid | driver_iduuid |
|---|---|---|---|---|---|
| a1bf891f-cd46-43d0-9b77-44d945d23b34 | 2024-05-16 10:46:21 | 2024-05-16 11:34:18 | North | 52ef47c2-b0bc-4538-a089-1e4dd712ade4 | 31345092-2870-4fda-84e6-e9680536c559 |
| e83e0bd6-6dbd-45cd-8628-7f1b405c27e4 | 2024-05-31 09:55:36 | 2024-05-31 10:56:13 | North | 962941b6-187f-4a70-b328-f133655472f9 | 0059d9a2-e133-4343-89b7-9221f89c25a4 |
| 6623b0a0-1e35-422a-b0e0-4cedbc82a18d | 2024-06-14 04:31:24 | 2024-06-14 05:14:35 | North | f1f5d2c7-4f14-49e1-b9e8-1d0f3072ed3b | afca51d4-68b0-4729-9b03-b0783a85827e |
Data dictionary
| column | type | description | example | null % |
|---|---|---|---|---|
delivery_ | uuid | Unique primary identifier for the delivery event. | 4027a045-ef9c-4a71-8844-ac2ac4d18e49 | 0% |
pickup_ | datetime | Timestamp when driver picked up the order from the restaurant. | 2024-05-17 08:56:24 | 0% |
delivery_ | datetime | Timestamp when driver completed delivery to the customer. | 2024-05-17 10:02:30 | 0% |
delivery_ | string | Geographical quadrant or zone where the delivery took place. | North | 0% |
order_ | uuid | Foreign key to orders.order_id. | bdb32460-593f-4487-83b1-3e8e0a970298 | 0% |
driver_ | uuid | Foreign key to drivers.driver_id. | 09ab3079-810a-4fb3-99b6-78c1115b313b | 0% |
How the tables join
orders.customer_id references customers.customer_idmany to one: each Orders row points to one Customers rowdeliveries.order_id references orders.order_idmany to one: each Deliveries row points to one Orders rowdeliveries.driver_id references drivers.driver_idmany to one: each Deliveries row points to one Drivers row
Questions to answer with it
Calculate the average delivery time per region using orders and deliveries tables.
You may need to calculate the difference between delivery_datetime and pickup_datetime to find delivery time.
tables: orders, deliveries
Identify the top 5 customers by total order amount using customers and orders tables.
Join customers and orders tables and group by customer to sum their order amounts.
tables: customers, orders
Determine the busiest hours for order placement by analyzing the hour component of order_datetime in the orders table.
Extract the hour from the order_datetime column and count the occurrences for each hour.
tables: orders
What is the distribution of order statuses in the orders table?
Group by order_status and count the number of orders for each status.
tables: orders
Starter SQL
run against this data before publishingTable names match the SQLite file and the SQL script.
Top 20 Customers by Total Order Amount
SELECT c.customer_name, SUM(o.order_total_amount) AS total_spent
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
GROUP BY c.customer_name
ORDER BY total_spent DESC
LIMIT 20;Order Volume by Hour of Day
SELECT STRFTIME('%H', order_datetime) AS order_hour, COUNT(order_id) AS order_count
FROM orders
GROUP BY order_hour
ORDER BY order_count DESC
LIMIT 20;Order Status Distribution
SELECT order_status, COUNT(order_id) AS status_count
FROM orders
GROUP BY order_status
ORDER BY status_count DESC
LIMIT 20;Load it with pandas
import pandas as pd
# Unzip the CSV download first: one file per table
customers = pd.read_csv("customers.csv")
drivers = pd.read_csv("drivers.csv")
restaurants = pd.read_csv("restaurants.csv")
orders = pd.read_csv("orders.csv")
deliveries = pd.read_csv("deliveries.csv")
# Join orders to customers
df = orders.merge(customers, left_on="customer_id", right_on="customer_id", how="left", suffixes=("", "_customers"))
print(df.groupby("customer_city").size().sort_values(ascending=False))Using it in your tool
- SQL
- The dataset is provided in SQLite format. The tables are already defined with appropriate data types. Primary and foreign keys are established to facilitate joins between tables. For example, 'orders.customer_id' links to 'customers.customer_id', and 'deliveries.order_id' links to 'orders.order_id'.
Formats available
- CSV (zip)One CSV file per table, zipped
- Excel workbookOne worksheet per table
- SQLite databaseA ready-to-query database file with every table
- Parquet (zip)One Parquet file per table, zipped
- SQL scriptCREATE TABLE with primary and foreign keys, then INSERTs
- CSVA single CSV file
- JSONA single JSON file
How this data was generated
Synthetic data. Every row was generated: no real people, customers or companies are in this dataset.
Synthetic data generated by GoMask DataFactory from a relational blueprint: keys, links and rules are enforced in code, text columns are filled by a language model. No real people, companies or transactions.
- The data was generated using GoMask DataFactory, creating synthetic customer, order, and delivery records.
- Relationships between customers, orders, and deliveries were simulated to mimic realistic transaction patterns.
- Timestamps and monetary values were randomized within plausible ranges for the food delivery industry.
- Checked by an automated quality gate: unique keys, no orphan foreign keys, required columns filled, declared rules and date ranges (realism score 84).
Limitations
- The dataset is synthetic and does not represent real-world individuals or transactions.
- Geographic data is limited to city and state level for customers and city for restaurants, with delivery regions simplified.
- Restaurant cuisine types are categorized broadly, with an 'Other' category for less common types.
- Distributions and correlations are modelled, not measured from real records.
blueprint · food-delivery-dataset-for-sql
Scale this dataset
Same tables. As many rows as you need.
Open the blueprint behind these 5 tables in Data Factory: keep the relationships, change a column, and generate it at the size you need.
- 200,000 rows
- 1,000,000 rows
- Tables
- customers, drivers, restaurants, orders, deliveries
- Licence
- yours to use, including commercially
- API slug
- food-delivery-dataset-for-sql