-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1countrys_spendings.sql
71 lines (54 loc) · 1.98 KB
/
1countrys_spendings.sql
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
USE sql_purchases;
DROP TABLE IF EXISTS sql_purchases.spending;
DROP TABLE IF EXISTS sql_purchases.quantities;
DROP TABLE IF EXISTS sql_purchases.total_spending;
DROP TABLE IF EXISTS sql_purchases.country_spendings;
DROP TABLE IF EXISTS sql_purchases.freq_stockcode;
DROP TABLE IF EXISTS sql_purchases.stockcode_product;
DROP TABLE IF EXISTS sql_purchases.stockcode_freq_descrip;
DROP TABLE IF EXISTS sql_purchases.final_table;
CREATE TABLE `spending`
SELECT country, (quantity* unitprice) AS spending
FROM purchase_data;
CREATE TABLE `total_spending`
SELECT country, SUM(spending) AS total_spending
From spending
GROUP BY country
ORDER BY country;
CREATE TABLE `quantities`
SELECT country,
SUM(quantity) AS total_quant
FROM purchase_data
GROUP BY country
ORDER BY country;
CREATE TABLE `country_spendings`
SELECT quantities.country, total_quant, round(total_spending,2),
round(total_spending/total_quant, 2) AS avg_unitprice
FROM quantities, total_spending
ORDER BY total_spending desc, avg_unitprice desc;
-- sorted a countries total spending and average dollar per item in decending order.
select count(distinct stockcode) as unique_stockcodes from purchase_data;
-- total of 2372 unique stockcode.
CREATE TABLE `freq_stockcode`
SELECT count(*) AS freq, stockcode
FROM purchase_data
GROUP BY stockcode
ORDER BY stockcode DESC;
-- stockcode 85123A is most frequently bought
CREATE TABLE `stockcode_product`
SELECT DISTINCT stockcode, description
FROM purchase_data ORDER BY stockcode DESC;
CREATE TABLE `stockcode_freq_descrip`
SELECT freq, freq_stockcode.stockcode, description
FROM freq_stockcode, purchase_data
ORDER BY freq DESC;
-- The stockcode that performed the best is
-- represented by a wide range of products
CREATE TABLE `final_table`
SELECT country, ROUND(sum(quantity*unitprice),2) AS spendings
FROM purchase_data
WHERE stockcode = '85123A'
GROUP BY country
ORDER BY spendings DESC;
SELECT *
FROM final_table;