Associazione codice fiscale e mappali NN con PostGIS

Blog

Associazione codice fiscale e mappali NN con PostGIS

Associazione codice fiscale e mappali NN con PostGIS >>
​Ho rinominato i tuoi dati in:
  • mattcat_areali_unione
  • mattcat_particelle

SQL1) Se esegui la stringa SQL

SELECT b.id as geom_id, cod_fiscal FROM mattcat_areali_unione a, mattcat_particelle b WHERE a.wskey=b.wskey ottieni la relazione N:N di sole due colonne, importanti:
  1. identificativo univoco geometria (generato automaticamente da 1 a xxx) b.id as geom_id
  2. codice fiscale cod_fiscal
Questo non è rappresentabile come geometria, perché ti troveresti delle gemetrie identiche che si sovrappongono ogni qualvolta un cod_fiscal viene associato a più geometrie.

SQL2) con quest'altra SQL

SELECT count (geom_id) as grouped_geom_id, cod_fiscal FROM ( SELECT b.id as geom_id, cod_fiscal FROM mattcat_areali_unione a, mattcat_particelle b WHERE a.wskey=b.wskey ) foo GROUP BY cod_fiscal avviene il raggruppamento GROUP BY cod_fiscal per codice fiscale e ti permette di conoscere quante geometrie appartengono ad ogni cod_fiscal. questa è la stringa per generare le stampe, che non puoi fare con QGis, ma devi per forza fare un pagina web: non intendendo pubblica, ma web locale, sfruttando il php

SQL3) infine questa SQL, inversa alla SQL2

SELECT count (cod_fiscal) as grouped_cod_fiscal, geom_id FROM ( SELECT b.id as geom_id, cod_fiscal FROM mattcat_areali_unione a, mattcat_particelle b WHERE a.wskey=b.wskey ) foo GROUP BY geom_id ti dice quanti cod_fiscal sono associati ad ogni geometria

NOTE codice fiscale e mappali NN

  • fare una espressione tipo  count (cod_fiscal) e poi mettere   as grouped_cod_fiscal significa che quella colonna si chiamerà  grouped_cod_fiscal molto utile, perchè altrimenti questa si chiamerebbe count perdendo significato
  • ho cercato di mettere un rientro nella stringa per significare le dipendenze infatti se vedi SELECT FROM WHERE GROUP sono sempre all'inizio
  • quando vedi  SELECT ... FROM (SELECT ...) significa che viene fatta una query, su un'altra query: sarebbe come creare prima una tabella e poi creare una seconda operazione su quest'ultima tabella
  • se mpre in riferimento a SELECT ... FROM (SELECT ...) ho messo  foo alla fine; non pensare che è un termine a caso! foo indica quasi sempre la prima di una tabella mentre bar indica la seconda, un po' come dire tizio e caio, non c'è la terza, ma spesso sono sempre solo 2 ... in alternatica usa semplicemente table1, table2, table3, ...