This project demonstrates Exploratory Data Analysis (EDA) using SQL Server on an E-Commerce Sales Dataset.
The analysis focuses on understanding customer behavior, sales performance, and revenue insights using SQL queries.
The database consists of the following main tables:

SELECT
(SELECT COUNT(*) FROM Customers) AS total_customers,
(SELECT COUNT(*) FROM Orders) AS total_orders,
(SELECT COUNT(*) FROM Products) AS total_products;

SELECT TOP 10
c.customer_name , SUM(od.total_amount) AS total_spent
FROM Customers AS c
JOIN Orders AS o ON c.customer_id = o.customer_id
JOIN Order_Details AS od ON o.order_id = od.order_id
GROUP BY c.customer_name
ORDER BY total_spent DESC;

SELECT p.category, ROUND(SUM(od.total_amount),2) AS revenue
FROM Products AS p
JOIN Order_Details AS od
ON p.product_id = od.product_id
GROUP BY p.category
ORDER BY revenue DESC;

SELECT
DATEPART(YEAR, o.order_date) AS year,
DATEPART(MONTH, o.order_date) AS month,
ROUND(SUM(od.total_amount),2) AS monthly_revenue
FROM Orders AS o
JOIN Order_Details AS od ON o.order_id = od.order_id
GROUP BY DATEPART(YEAR, o.order_date), DATEPART(MONTH, o.order_date)
ORDER BY year, month DESC;

SELECT ship_mode, COUNT(*) AS total_orders
FROM Orders
GROUP BY ship_mode
ORDER BY total_orders DESC;

SELECT
CASE
WHEN discount = 0 THEN 'No Discount'
WHEN discount < 0.1 THEN 'Low Discount'
WHEN discount < 0.3 THEN 'Medium Discount'
ELSE 'High Discount'
END AS discount_level,
ROUND(SUM(total_amount),2) AS revenue
FROM Order_Details
GROUP BY
CASE
WHEN discount = 0 THEN 'No Discount'
WHEN discount < 0.1 THEN 'Low Discount'
WHEN discount < 0.3 THEN 'Medium Discount'
ELSE 'High Discount'
END
ORDER BY revenue DESC;

SELECT c.region, SUM(od.total_amount) AS revenue
FROM Customers AS c
JOIN Orders AS o ON c.customer_id = o.customer_id
JOIN Order_Details AS od ON o.order_id = od.order_id
GROUP BY c.region
ORDER BY revenue DESC;

SELECT ROUND(AVG(order_value),2) AS avg_order_value
FROM (
SELECT o.order_id, SUM(od.total_amount) AS order_value
FROM Orders AS o
JOIN Order_Details AS od ON o.order_id = od.order_id
GROUP BY o.order_id
) sub;

SELECT TOP 10
p.product_name, SUM(od.quantity) AS total_sold
FROM Products AS p
JOIN ORDER_DETAILS od ON p.product_id = od.product_id
GROUP BY p.product_name
ORDER BY total_sold DESC;

SELECT TOP 10
p.product_name, ROUND(SUM(od.total_amount - (p.price * od.quantity)),2) AS profit
FROM Products AS p
JOIN Order_Details AS od ON p.product_id = od.product_id
GROUP BY p.product_name
ORDER BY profit DESC

- Identified top customers contributing most to revenue.
- Found best-performing product categories.
- Analyzed monthly revenue trends for growth monitoring.
- Measured impact of discounts on revenue.
- Determined top products by sales and profit margin.
- Provided KPIs like Average Order Value (AOV).
π Tools & Technologies
SQL Server (T-SQL)
E-commerce dataset
Exploratory Data Analysis (EDA)