Diferència entre revisions de la pàgina «Processar les dades: Full de càlcul i gràfiques»

De wikijoan
Salta a la navegació Salta a la cerca
Línia 3: Línia 3:
 
=Desenvolupament=
 
=Desenvolupament=
 
[[Fitxer:Grafiques municipis.png | thumbnail]]
 
[[Fitxer:Grafiques municipis.png | thumbnail]]
 +
==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:
 +
<pre>
 +
$ mysql -h localhost -u alumne -pkeiL2lai -s municipis
 +
</pre>
 +
I aleshores podem utilitzar la funció '''concat()''' per concatenar els camps que interessen, intercal·lats amb punt i coma.
 +
<pre>
 +
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
 +
...
 +
</pre>
 +
'''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==
 +
<pre>
 +
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;
 +
</pre>
 +
 +
==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:
 +
<pre>
 +
select min(superficie),max(superficie) from municipis;
 +
0 1750
 +
</pre>
 +
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'':
 +
<pre>
 +
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
 +
...
 +
</pre>
 +
==Consulta 4: número de municipis per un rang de número d'habitants==
 +
<pre>
 +
select min(habitants),max(habitants) from municipis;
 +
3 3334730
 +
</pre>
 +
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:
 +
<pre>
 +
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
 +
...
 +
</pre>
  
 
=Tasques a realitzar=
 
=Tasques a realitzar=

Revisió del 18:40, 2 feb 2022

Introducció

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
...

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

Entrega


creat per Joan Quintana Compte, febrer 2022