Mondi su mondi, sistemi di sistemi.

Funzioni aggregate in PostgreSQL

Una delle fun­zio­na­lità più utili dei DBMS è quella delle fun­zioni aggre­gate, come MAX o SUM, ad esempio.

Con PostgreSQL si può fare un passo in più, con CREATE AGGREGATE.

La sin­tassi del comando è la seguente:

CREATE AGGREGATE name ( input_data_type [ , ... ] ) (
    SFUNC = sfunc,
    STYPE = state_data_type
    [ , FINALFUNC = ffunc ]
    [ , INITCOND = initial_condition ]
    [ , SORTOP = sort_operator ]
)

Come si vede, dob­biamo imple­men­tare almeno SFUNC che è la fun­zione che viene invo­cata per ogni riga; se neces­sa­rio, pos­siamo anche FINALFUNC, che è la fun­zione invo­cata in chiu­sura, dopo che SFUNC ha aggior­nato lo stato della varia­bile con l’ultima riga. Un esem­pio lo tro­vate in “How To create multi-column aggre­ga­tes”.

La cosa più inte­res­sante di que­sta fun­zio­na­lità è che rende pos­si­bile ope­ra­zioni molto simili (per non dire iden­ti­che) alle fun­zioni di fol­ding.

Per proseguire

Commenti e trackback sono disabilitati.