-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGenDip_menonvalentina.sql
185 lines (143 loc) · 5.09 KB
/
GenDip_menonvalentina.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
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
SELECT "year", cname_send, main_posting, title, gender, cname_receive, ccode_send, ccodealp_send, ccodeCOW_send, region_send, GME_send, v2lgfemleg_send, FFP_send, ccode_receive, ccodealp_receive, ccodeCOW_receive, region_receive, GME_receive, FFP_receive
FROM sqlgendip;
-- Per avere una visione complessiva della disparità di genere, lancio una query per capire quanti elementi ho per tutti e tre i valori del campo 'gender'
SELECT gender, COUNT(*)
FROM sqlgendip
GROUP BY gender
-- Analizzo i dati per capire se e come è presente disparità di genere nel corso del tempo: lancio un conteggio di quanti uomini, quante donne e quanti con genere mancante per anno
SELECT year, gender, COUNT(*)
FROM sqlgendip
GROUP BY year, gender
-- Per avere una visualizzazione più chiara, ripeto il conteggio per ognuno dei valori del campo 'gender' e raggruppando per anno
SELECT year, COUNT(*)
FROM sqlgendip
WHERE gender = '0'
GROUP BY year
SELECT year, COUNT(*)
FROM sqlgendip
WHERE gender = '1'
GROUP BY year
SELECT year, COUNT(*)
FROM sqlgendip
WHERE gender = '99'
GROUP BY year
-- Per avere una visualizzazione più chiara e lanciare una sola query, ripeto il conteggio raggruppando per anno e per genere e ordinando i dati per anno in ordine crescente
SELECT year, gender, COUNT(*)
FROM sqlgendip
GROUP BY year, gender
ORDER BY year ASC
-- Uso CASE WHEN per trasformare gli 0/1/99 in valori testuali e calcolo le percentuali di donne, uomini e genere mancante rispetto al totale.
SELECT year, gender, COUNT(*),
CASE WHEN gender = '0' THEN 'uomini'
WHEN gender = '1' THEN 'donne'
WHEN gender = '99' THEN 'mancante'
END AS genere
FROM sqlgendip
GROUP BY year, gender
ORDER BY year ASC
SELECT year, (COUNT(gender)/COUNT(*))*100 as percentuale
FROM sqlgendip
WHERE gender = 0
GROUP BY year
SELECT year, (COUNT(gender)/COUNT(*))*100 as percentuale
FROM sqlgendip
WHERE gender = 1
GROUP BY year
SELECT year, (COUNT(gender)/COUNT(*))*100 as percentuale
FROM sqlgendip
WHERE gender = 99
GROUP BY YEAR
-- in alternativa
WITH total AS
(SELECT sqlgendip.year, COUNT(*) as total
FROM sqlgendip
GROUP BY sqlgendip.year)
SELECT sqlgendip.year,
CASE
WHEN gender = '0' THEN 'uomini'
WHEN gender = '1' THEN 'donne'
WHEN gender = '99' THEN 'mancante'
END AS gender,
COUNT(*)/total as percentuale
FROM sqlgendip
LEFT JOIN total
ON total.year = sqlgendip.year
GROUP BY total, sqlgendip.year, gender
-- Analizzo i dati per capire la disparità di genere tra le aree geografiche
SELECT region_send, gender, COUNT(*)
FROM sqlgendip
GROUP BY gender, region_send
ORDER BY region_send ASC
-- Ripeto il conteggio confrontando le aree geografiche e isolando i dati di ognuno dei tre valori del campo 'gender' con query distinte
SELECT region_send, COUNT(*)
FROM sqlgendip
WHERE gender = '0'
GROUP BY region_send
ORDER BY region_send ASC
SELECT region_send, COUNT(*)
FROM sqlgendip
WHERE gender = '1'
GROUP BY region_send
ORDER BY region_send ASC
SELECT region_send, COUNT(*)
FROM sqlgendip
WHERE gender = '99'
GROUP BY region_send
ORDER BY region_send ASC
-- Analizzo i dati per capire se e come è presente disparità di genere tra uomo e donna per ognuno dei titoli. Raggruppo per titolo e ordino i dati per titolo in ordine crescente. Lancio una query per isolare i dati relativi agli uomini e una per i dati relativi alle donne
SELECT title, COUNT(*)
FROM sqlgendip
WHERE gender = '0'
GROUP BY title
ORDER BY title ASC
SELECT title, COUNT(*)
FROM sqlgendip
WHERE gender = '1'
GROUP BY title
ORDER BY title ASC
-- Analizzo i dati relativi all'Italia
-- Per avere una visione della disparità di genere, lancio una query per capire quanti elementi ho per tutti e tre i valori del campo 'gender'
SELECT gender, COUNT(*)
FROM sqlgendip
WHERE cname_send = 'Italy'
GROUP BY gender
-- Analizzo i dati per capire se e come è presente disparità di genere nel corso del tempo: lancio un conteggio di quanti uomini, quante donne e quanti con genere mancante per anno
SELECT year, gender, COUNT(*)
FROM sqlgendip
WHERE cname_send = 'Italy'
GROUP BY year, gender
-- Per avere una visualizzazione più chiara, ripeto il conteggio per ognuno dei valori del campo 'gender' raggruppando per anno
SELECT year, COUNT(*)
FROM sqlgendip
WHERE gender = '0'
AND cname_send = 'Italy'
GROUP BY year
SELECT year, COUNT(*)
FROM sqlgendip
WHERE gender = '1'
AND cname_send = 'Italy'
GROUP BY year
SELECT year, COUNT(*)
FROM sqlgendip
WHERE gender = '99'
AND cname_send = 'Italy'
GROUP BY year
-- Per avere una visualizzazione più chiara e lanciare una sola query, ripeto il conteggio raggruppando per anno e per genere e ordinando i dati per genere in ordine crescente
SELECT gender, year, COUNT(*)
FROM sqlgendip
WHERE cname_send = 'Italy'
GROUP BY year, gender
ORDER BY gender ASC
-- Analizzo i dati per capire se e come è presente disparità di genere tra uomo e donna in Italia per ognuno dei titoli. Raggruppo per titolo e ordino i dati per titolo in ordine crescente
SELECT title, COUNT(*)
FROM sqlgendip
WHERE gender = '0'
AND cname_send = 'Italy'
GROUP BY title
ORDER BY title ASC
SELECT title, COUNT(*)
FROM sqlgendip
WHERE gender = '1'
AND cname_send = 'Italy'
GROUP BY title
ORDER BY title ASC