-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPIZZA_SALES.sql
More file actions
139 lines (101 loc) · 3.69 KB
/
PIZZA_SALES.sql
File metadata and controls
139 lines (101 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
--KPI´S
SELECT CAST(SUM(total_price) AS DECIMAL(10,2)) AS Total_Rev
FROM pizza_sales1
SELECT CAST(SUM(total_price)/COUNT(DISTINCT order_id) AS DECIMAL (10,2)) AS Avg_order_Value
FROM pizza_sales1
SELECT SUM(quantity) AS Tot_pizza_sold
FROM pizza_sales1
SELECT COUNT(DISTINCT order_id) AS Total_Orders
FROM pizza_sales1
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_sales1
--HOURLY TREND
SELECT DATEPART(HOUR, order_time) as order_hours, SUM(quantity) as total_pizzas_sold
FROM pizza_sales1
GROUP BY DATEPART(HOUR, order_time)
ORDER BY DATEPART(HOUR, order_time)
--WEEKLY TREND
SELECT DATEPART(ISO_WEEK, order_date) AS WeekNumber,
YEAR(order_date) AS Year,
COUNT(DISTINCT order_id) AS Total_orders
FROM pizza_sales1
GROUP BY DATEPART(ISO_WEEK, order_date),
YEAR(order_date)
ORDER BY Year, WeekNumber
--MONTHLY TREND
SELECT DATEPART(MONTH, order_date) AS Month,
COUNT(DISTINCT order_id) AS Total_orders
FROM pizza_sales1
GROUP BY DATEPART(MONTH, order_date)
ORDER BY Month
--PERCENTAGE OF PIZZA SALES BY CATEGORY
SELECT pizza_category,
CAST(SUM(total_price) AS DECIMAL(10,2)) AS Sales_total,
CAST(SUM(total_price) * 100/(SELECT SUM(total_price)
FROM pizza_sales1) AS DECIMAL (10,2)) AS percentage_of_sales
FROM pizza_sales1
GROUP BY pizza_category
ORDER BY pizza_category DESC
--Additionally if we are to query by month
--WHERE Month is indicated by number e.g. January = 1:
SELECT pizza_category,
CAST(SUM(total_price) AS DECIMAL(10,2)) AS Sales_total,
CAST(SUM(total_price) * 100/
(SELECT SUM(total_price)
FROM pizza_sales1
WHERE MONTH(order_date) = 1)AS DECIMAL (10,2)) AS percentage_of_sales
FROM pizza_sales1
WHERE MONTH(order_date) = 1
GROUP BY pizza_category
ORDER BY Sales_total DESC
--PERCENTAGE OF SALES BY PIZZA SIZE
SELECT pizza_size,
CAST(SUM(total_price) AS DECIMAL(10,2)) AS Sales_total,
CAST(SUM(total_price) * 100/
(SELECT SUM(total_price)
FROM pizza_sales1) AS DECIMAL (10,2)) AS percentage_of_sales
FROM pizza_sales1
GROUP BY pizza_size
ORDER BY percentage_of_sales DESC
--TOTAL PIZZAS SOLD BY CATEGORY
SELECT pizza_category,
SUM(quantity) AS Pizzas_sold_total
FROM pizza_sales1
GROUP BY pizza_category
ORDER BY Pizzas_sold_total DESC
--TOP 5 BEST SELLERS BY REVENUE, TOTAL QUANTITY AND TOTAL ORDERS
--A. BY REVENUE
SELECT TOP 5 pizza_name,
SUM(quantity) AS total_pizza_sold
FROM pizza_sales1
GROUP BY pizza_name
ORDER BY total_pizza_sold DESC
--B. BY TOTAL QUANTITY
SELECT Top 5 pizza_name, SUM(quantity) AS Total_Pizza_Sold
FROM pizza_sales1
GROUP BY pizza_name
ORDER BY Total_Pizza_Sold DESC
--C. TOTAL ORDERS
SELECT Top 5 pizza_name, COUNT(DISTINCT order_id) AS Total_Orders
FROM pizza_sales1
GROUP BY pizza_name
ORDER BY Total_Orders DESC
--BOTTOM 5 SELLERS BY REVENUE, TOTAL QUANTITY AND TOTAL ORDERS
--A. BY REVENUE
SELECT TOP 5 pizza_name,
SUM(quantity) AS total_pizza_sold
FROM pizza_sales1
GROUP BY pizza_name
ORDER BY total_pizza_sold ASC
--B. BY TOTAL QUANTITY
SELECT TOP 5 pizza_name, SUM(quantity) AS Total_Pizza_Sold
FROM pizza_sales1
GROUP BY pizza_name
ORDER BY Total_Pizza_Sold ASC
--C: BY TOTAL ORDERS
SELECT Top 5 pizza_name, COUNT(DISTINCT order_id) AS Total_Orders
FROM pizza_sales1
GROUP BY pizza_name
ORDER BY Total_Orders ASC