Processar les dades: Full de càlcul i gràfiques
Contingut
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
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