-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpizzasales1.sql
More file actions
146 lines (106 loc) · 3.69 KB
/
pizzasales1.sql
File metadata and controls
146 lines (106 loc) · 3.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
select * from pizza_sales
-- Check data type
describe pizza_sales
-- Fix data type
UPDATE pizza_sales
SET order_date = STR_TO_DATE(order_date, '%d-%m-%Y');
alter table pizza_sales
modify column order_date date;
describe pizza_sales
UPDATE pizza_sales
SET order_time = STR_TO_DATE(order_time, '%H:%i:%s');
alter table pizza_sales
modify column order_time time;
-- Total Revenue
Select sum(total_price) as Total_Revenue from pizza_sales
-- Average Order Value
select * from pizza_sales
SELECT SUM(total_price) / COUNT(DISTINCT order_id) AS Avg_Order_Value FROM pizza_sales;
-- Total Orders
select count(distinct order_id) AS Total_orders from pizza_sales
-- Total Pizzas Sold
select sum(quantity) AS Total_Pizza_Sold 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 Total_Pizza_Sold from pizza_sales
-- Daily Trend For Total Orders
-- Select DAYNAME(order_date) as order_day, count(distinct order_id) as total_orders from pizza_sales
-- group by DAYNAME(order_date)
-- SELECT
-- DAYNAME(order_date) AS order_day,
-- COUNT(DISTINCT order_id) AS total_orders
-- FROM
-- pizza_sales
-- GROUP BY
-- WEEKDAY(order_date), DAYNAME(order_date)
-- ORDER BY
-- WEEKDAY(order_date);
SELECT
DAYNAME(order_date) AS order_day,
COUNT(DISTINCT order_id) AS total_orders
FROM
pizza_sales
GROUP BY
order_day, WEEKDAY(order_date)
ORDER BY
WEEKDAY(order_date);
-- Monthly Trend For Orders
SELECT
monthname(order_date) AS Month_name,
COUNT(DISTINCT order_id) AS total_orders
FROM
pizza_sales
GROUP BY
monthname(order_date)
-- Ordered Way
SELECT monthname(order_date) AS Month_Name, COUNT(DISTINCT order_id) AS Total_Orders
FROM pizza_sales
GROUP BY MONTH(order_date), monthname(order_date)
ORDER BY MONTH(order_date);
-- % of Sales by Pizza Category
SELECT pizza_category, CAST(SUM(total_price) AS DECIMAL(10,2)) as total_revenue,
CAST(SUM(total_price) * 100 / (SELECT SUM(total_price) from pizza_sales) AS DECIMAL(10,2)) AS PCT
FROM pizza_sales
GROUP BY pizza_category
-- First month
SELECT pizza_category, CAST(SUM(total_price) AS DECIMAL(10,2)) as total_revenue,
CAST(SUM(total_price) * 100 / (SELECT SUM(total_price) from pizza_sales where month(order_date)=1) AS DECIMAL(10,2)) AS PCT
FROM pizza_sales
where month(order_date)=1
GROUP BY pizza_category
-- % of Sales by Pizza Size
SELECT pizza_size, CAST(SUM(total_price) AS DECIMAL(10,2)) as total_revenue,
CAST(SUM(total_price) * 100 / (SELECT SUM(total_price) from pizza_sales) AS DECIMAL(10,2)) AS PCT
FROM pizza_sales
GROUP BY pizza_size
Order by PCT DESC
-- First quarter
SELECT pizza_size, CAST(SUM(total_price) AS DECIMAL(10,2)) as total_revenue,
CAST(SUM(total_price) * 100 / (SELECT SUM(total_price) from pizza_sales where quarter(order_date)=1) AS DECIMAL(10,2)) AS PCT
FROM pizza_sales
where quarter(order_date)=1
GROUP BY pizza_size
Order by PCT DESC
-- Total Pizzas Sold by Pizza Category
SELECT pizza_category, SUM(quantity) as Total_Quantity_Sold
FROM pizza_sales
WHERE MONTH(order_date) = 2
GROUP BY pizza_category
ORDER BY Total_Quantity_Sold DESC
-- Top 5 Pizzas by Revenue (Generic favouritism)
SELECT pizza_name, SUM(total_price) AS Total_Revenue
FROM pizza_sales
GROUP BY pizza_name
ORDER BY Total_Revenue DESC
limit 5
-- Bottom 5 Pizzas by Revenue
SELECT pizza_name, SUM(total_price) AS Total_Revenue
FROM pizza_sales
GROUP BY pizza_name
ORDER BY Total_Revenue asc
limit 5
-- Top 5 Pizzas by Total Orders(intensity indivdual favouritism indicator)
SELECT pizza_name, COUNT(DISTINCT order_id) AS Total_Orders
FROM pizza_sales
GROUP BY pizza_name
ORDER BY Total_Orders DESC
limit 5