/
CASE.sql
90 lines (76 loc) · 1.38 KB
/
CASE.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
SELECT customer_id,
CASE
WHEN (customer_id <= 100) THEN 'Premium'
WHEN (customer_id BETWEEN 100 AND 200) THEN 'Plus'
ELSE 'Regular'
END AS customer_class
FROM customer
SELECT customer_id,
CASE customer_id
WHEN 2 THEN 'Winner'
WHEN 5 THEN 'Second Place'
ELSE 'Normal'
END AS raffle_results
FROM customer
SELECT
SUM(CASE rental_rate
WHEN 0.99 THEN 1
ELSE 0
END) AS bargains,
SUM(
CASE rental_rate
WHEN 2.99 THEN 1
ELSE 0
END) AS regular,
SUM(
CASE rental_rate
WHEN 4.99 THEN 1
ELSE 0
END) AS premium
FROM film*/
SELECT
SUM(
CASE rating
WHEN 'R' THEN 1
ELSE 0
END) AS r,
SUM(
CASE rating
WHEN 'PG' THEN 1
ELSE 0
END) AS pg,
SUM(
CASE rating
WHEN 'PG-13' THEN 1
ELSE 0
END) AS pg13
FROM film;
CREATE VIEW customer_info AS
SELECT first_name, last_name, address FROM customer
INNER JOIN address
ON customer.address_id = address.address_id;
SELECT * FROM customer_info;
SELECT (
SUM(CASE
WHEN department = 'A' THEN 1
ELSE 0
END
) / SUM(
CASE
WHEN department = 'B' THEN 1
ELSE 0
END
)
) AS ratio FROM depts;
SELECT (
SUM(CASE
WHEN department = 'A' THEN 1
ELSE 0
END
) / NULLIF(SUM(
CASE
WHEN department = 'C' THEN 1
ELSE 0
END), 0
)
) AS ratio FROM depts;