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