|
Aggregare il Prodotto
SQL Server prevede diverse funzioni di aggregazione SUM(), MIN(), MAX(), AVG() ecc.
ma, chissà perchè, non fornisce una funzione per calcolare il Prodotto.
Ovviamente l'utilità del prodotto è inferiore rispetto alla somma, ma è anche vero che non
costerebbe poi molto agli sviluppatroi di SQL Server aggiungere tale funzione.
Aspettando la prossima versione del RDBMS, possiamo utilizzare uno dei due sitemi proposti
di seguito.
Il primo richiede la dichiarazione ed inizializzazione di una variabile e sfrutta il sistema
di assegnazione iterativo della SELECT. Il secondo sfrutta la SUM() e le proprietà del Logaritmo
(anche se bisogna fare i conti con l'approssimazione decimale...).
L'importante è resistere alla tentazione di usare un cursore...
|
Soluzione "Prolissa"
DECLARE @Prod FLOAT
SET @Prod = 1
SELECT @Prod = @Prod * ColName
FROM MyTable
WHERE ColName IS NOT NULL
SELECT @Prod
Soluzione Cripto-Elegante
SELECT EXP(SUM(LOG(ColName))) AS ProductValue
FROM MyTable
Tutte le Utility