This project analyzes a pizza shop’s sales data using SQL to uncover performance trends. The goal was to identify actionable insights to help increase revenue, reduce waste, and optimize inventory. A Tableau dashboard was created to visualize key business metrics.
📌 Data Source: Practiced and guided by Data Tutorials on YouTube. Full credit to the original creator.
-- Total Revenue
SELECT SUM(total_price) AS total_revenue
FROM pizza_sales;
--Average Order Value
SELECT SUM(total_price) / COUNT(DISTINCT order_id) AS Avg_Order_Value
FROM pizza_sales;
--Total Pizzas Sold
SELECT SUM(quantity) AS Total_Pizza_Sold
FROM pizza_sales;
--Total Orders
SELECT COUNT(DISTINCT order_id) AS Total_orders
FROM pizza_sales;
--Average Pizzas Per Order
SELECT CAST(CAST(SUM(quantity) AS DECIMAL(10,2)) /
CAST(COUNT (DISTINCT order_id) AS DECIMAL(10,2)) AS DECIMAL(10,2)) AS Avg_Pizzas_Per_Order
FROM pizza_sales;
-- Hourly Trend for Total Pizzas Sold
SELECT DATEPART(HOUR, order_time) AS order_hour,
SUM(quantity) AS Total_pizzas_sold
FROM pizza_sales
GROUP BY DATEPART(HOUR, order_time)
ORDER BY DATEPART(HOUR, order_time)
-- Weekly Trend for Total Orders
SELECT DATEPART(ISO_WEEK, order_date) AS week_number,
YEAR(order_date) AS Order_year,
COUNT(DISTINCT order_id) AS Total_orders
FROM pizza_sales
GROUP BY DATEPART(ISO_WEEK, order_date), YEAR(order_date)
ORDER BY DATEPART(ISO_WEEK, order_date), YEAR(order_date)
--Top 5 Best Sellers by Revenue
SELECT TOP 5 pizza_name,
SUM(total_price) AS Total_Revenue
FROM pizza_sales
GROUP BY pizza_name
ORDER BY Total_Revenue DESC
--Lowest 5 pizzas by Revenue
SELECT TOP 5 pizza_name,
SUM(total_price) AS Total_Revenue
FROM pizza_sales
GROUP BY pizza_name
ORDER BY Total_Revenue ASC