Processar les dades: Full de càlcul i gràfiques

De wikijoan
Salta a la navegació Salta a la cerca

Introducció

Heu vist els GROUP BY, i ara ho utilitzarem per generar les dades, processar les dades, i visualitzar-les en forma de gràfica.

Desenvolupament

Grafiques municipis.png

Consulta 1: número de municipis per província

Per tal d'obtenir una llista de valors separats per punt i coma (;), ho podem fer de dues maneres:

opció 1: obrir el mysql amb l'opció silent (-s), i d'aquesta manera no apareixen les línies de separació dels camps:

$ mysql -h localhost -u alumne -pkeiL2lai -s municipis

I aleshores podem utilitzar la funció concat() per concatenar els camps que interessen, intercal·lats amb punt i coma.

select concat(provincia,';',count(municipi))
from municipis m
inner join provincies p on m.id_prov=p.id_prov
group by provincia;

Álava;51
Albacete;87
Alacant;141
Almería;103
...

opció 2: si utilitzes el Mysql Workbench és molt fàcil. Quan fas una consulta, la pots exportar a diferents formats, entre ells evidentment trobaràs el CSV.

Un cop tens les dades netes, les pots copiar al teu full de càlcul, i aleshores pots inserir un Diagrama.

Per a la consulta 1 i 2 utilitzaràs diagrames de barres; per a les consultes 3 i 4 utilitzaràs diagrames de línies.

Has d'aconseguir una visualització similar a la que es veu a la imatge.

Consulta 2: número de municipis per comunitat

select concat(comunitat,';',count(municipi))
from municipis m
inner join provincies p on m.id_prov=p.id_prov
INNER JOIN comunitats c on p.id_com=c.id_com
group by c.id_com, comunitat;

Consulta 3: número de municipis per un rang de superfície

Podem mirar quina és la superfície mínima i màxima que tenim:

select min(superficie),max(superficie) from municipis;
0	1750

Si volem 50 columnes, farem: rang = (1750-0)/50 = 35 Km^2

El problema és que estan repartides d'una manera molt desigual. Representarem aquestes franges des de municipis de 0-34Km2 fins a la franja 685-720 Km^2, i ho farem de la següent manera, utilitzant UNION ALL:

select concat('sup 0-34',';',count(*)) from municipis where superficie between 0 and 34
union all
select concat('sup 35-69',';',count(*)) num from municipis where superficie between 35 and 69
union all
select concat('sup 70-104',';',count(*)) num from municipis where superficie between 70 and 104
...
sup 0-34;3652
sup 35-69;1924
sup 70-104;747

Consulta 4: número de municipis per un rang de número d'habitants

select min(habitants),max(habitants) from municipis;
3	3334730

Igual que abans, les franges estan molt mal repartides, i la majoria de municipis tenen pocs habitants. Farem franges de 100 en 100 fins a 2000 habitants:

select concat('0-100',';',count(*)) from municipis where habitants between 0 and 100
union all
select concat('100-200',';',count(*)) from municipis where habitants between 100 and 200
union all
select concat('200-300',';',count(*)) from municipis where habitants between 200 and 300
...

Tasques a realitzar

Per cadascun dels 4 exercicis:

1. executa la consulta

2. Apunta les dades

3. Exporta les dades a l'Excel/Calc

4. Genera el gràfic, juga amb els paràmetres

5. Fes les captures de pantalla i explicacions que consideris oportunes

Entrega

Entregaràs al Classroom, dins del termini, un pdf amb les captures de pantalla i les explicacions oportunes. Has d'explicar amb les teves paraules el procés que has seguit.



creat per Joan Quintana Compte, febrer 2022