-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSQL Codes.sql
More file actions
89 lines (81 loc) · 2.25 KB
/
SQL Codes.sql
File metadata and controls
89 lines (81 loc) · 2.25 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
-- Top 10 highest revenue-generating products overall
SELECT TOP 10
product_id,
SUM(sale_price) AS total_sales
FROM df_orders
GROUP BY product_id
ORDER BY total_sales DESC;
-- Top 5 best-selling products by sales in each region
WITH regional_sales AS (
SELECT
region,
product_id,
SUM(sale_price) AS total_sales
FROM df_orders
GROUP BY region, product_id
)
SELECT *
FROM (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY region ORDER BY total_sales DESC) AS rank
FROM regional_sales
) ranked_sales
WHERE rank <= 5;
-- Month-over-month sales comparison for 2022 vs 2023
WITH monthly_sales AS (
SELECT
YEAR(order_date) AS order_year,
MONTH(order_date) AS order_month,
SUM(sale_price) AS total_sales
FROM df_orders
GROUP BY YEAR(order_date), MONTH(order_date)
)
SELECT
order_month,
SUM(CASE WHEN order_year = 2022 THEN total_sales ELSE 0 END) AS sales_2022,
SUM(CASE WHEN order_year = 2023 THEN total_sales ELSE 0 END) AS sales_2023
FROM monthly_sales
GROUP BY order_month
ORDER BY order_month;
-- Find the month with the highest sales for each category
WITH category_monthly_sales AS (
SELECT
category,
FORMAT(order_date, 'yyyyMM') AS year_month,
SUM(sale_price) AS total_sales
FROM df_orders
GROUP BY category, FORMAT(order_date, 'yyyyMM')
)
SELECT *
FROM (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY category ORDER BY total_sales DESC) AS rank
FROM category_monthly_sales
) ranked_category_sales
WHERE rank = 1;
-- Sub-category with highest sales growth (2023 vs 2022)
WITH yearly_subcategory_sales AS (
SELECT
sub_category,
YEAR(order_date) AS order_year,
SUM(sale_price) AS total_sales
FROM df_orders
GROUP BY sub_category, YEAR(order_date)
),
sales_comparison AS (
SELECT
sub_category,
SUM(CASE WHEN order_year = 2022 THEN total_sales ELSE 0 END) AS sales_2022,
SUM(CASE WHEN order_year = 2023 THEN total_sales ELSE 0 END) AS sales_2023
FROM yearly_subcategory_sales
GROUP BY sub_category
)
SELECT TOP 1
sub_category,
sales_2022,
sales_2023,
(sales_2023 - sales_2022) AS growth
FROM sales_comparison
ORDER BY growth DESC;