Processar les dades: Full de càlcul i gràfiques
Introducció
Her 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
...
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
...
Base de dades d'empresa
Tens una base de dades (fictícia) amb les taules producte, categoria, factura. Has d'escriure quins seran els camps típics que tindran aquestes taules.
Fes una consulta per tal de llistar 2 camps: la categoria i total_vendes_anual anual de l'any 2021.
D'aquesta manera podràs fer una gràfica visual de quina és la categoria de productes que s'han venut més l'any 2021.
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