««« | »»»
Funzioni aggregate in PostgreSQL
Una delle funzionalità più utili dei DBMS è quella delle funzioni aggregate, come MAX o SUM, ad esempio.
Con PostgreSQL si può fare un passo in più, con CREATE AGGREGATE.
La sintassi 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, dobbiamo implementare almeno SFUNC che è la funzione che viene invocata per ogni riga; se necessario, possiamo anche FINALFUNC, che è la funzione invocata in chiusura, dopo che SFUNC ha aggiornato lo stato della variabile con l’ultima riga. Un esempio lo trovate in “How To create multi-column aggregates”.
La cosa più interessante di questa funzionalità è che rende possibile operazioni molto simili (per non dire identiche) alle funzioni di folding.
Per proseguire
Commenti e trackback sono disabilitati.