[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [postgresql-it] calcolo e inserimento dati a gruppi



On Fri, 15 Jun 2012 20:42:00 +0200, Daniele Frigo wrote:
Qualcosa tipo questo dovrebbe funzionare:

UPDATE import.events a SET average_ml_daily = (SELECT avg("Magnitudo") FROM
import.events b WHERE a.doy = b.doy) ;

Devi legare la query interna con quella esterna, ed il gioco è fatto.
Scusa ma non un postgres sotto mano per provare la sintassi esatta.

Non mi sembra corretto, ma non so non avendo lo schema sottomano.

Pensavo più a qualcosa tipo:

    UPDATE import.events e SET average_ml_daily = avg_mag
from (SELECT doy, avg("Magnitudo") as avg_mag FROM import.events group by doj) avgs
    where avgs.doy = e.doy;

Anche questo non testato.

Nota 1: il doy non mi sembra una grande idea: è un dato che puoi ricavarti con una sottrazione. Perché non memorizzi il timestamp dell'evento e basta?

Nota 2: i campi con l'iniziale maiuscola e tra virgolette ti creeranno solo problemi (non è un bikeshedding sulla naming convention: Magnitudo non è uguale a "Magnitudo").


--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com