[Gfoss] Postgres e View incompatibili con Qgis - vecchio problema

Luca Sigfrido Percich sigfrido a tiscali.it
Ven 3 Giu 2011 11:27:05 CEST


Ciao Luca,

Il giorno ven, 03/06/2011 alle 11.12 +0200, Luca Mandolesi ha scritto:

> 
> Mi sorge un dubbio, non si può fare una query così?
> 
> 
> CREATE OR REPLACE VIEW view1 AS 
>  SELECT id_reperti AS new_id_reperti, st_union(the_geom) AS new_geom,
> campo1, campo2, campo3, campo4
>    FROM reperti_e_us_e_poligoni_view
>   GROUP BY new_id_reperti
> 
> 
> Perchè si è costretti a inserire nel group by tutti i campi? Secondo
> me è qui che sbaglio...

Quando raggruppi, immagina la query in 2 tempi:

1. Applico le where e definisco i campi in uscita
2. Per ogni gruppo di record che presenta la stessa combinazione dei
campi indicati in GROUP BY, produco una sola riga in uscita

Quindi, un campo in uscita O appartiene al GROUP BY, O deve essere
associato ad un operatore che mi consenta di ottenere un solo valore da
molti record: min, max, avg, count etc.

Nel tuo caso, se sei sicuro che lo stesso ID_REPERTO si porti sempre
dietro gli stessi valori di sito, us e area, puoi semplicemente
indicare:

 SELECT id_reperti AS new_id_reperti, st_union(the_geom) AS new_geom,
first(area), first(us), first(sito)

Con l'operatore di aggregazione first prendi semplicemente il primo
valore che trovi nel gruppo. Concettualmente è più corretto così che
inserendo us, sito e area nella group by, perché se vedo una query tipo:

select id, us, sito, area from... group by id, us, sito, area

mi aspetto che possano esistere diverse combinazioni di id, us, sito,
area.

Sig
> 

_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).


Maggiori informazioni sulla lista Gfoss