- Published on
Aggregate Product in SQL Server
- Authors

- Name
- Jeevan Wijerathna
- @iamjeevanvj
Problem
Calculate PRODUCT aggregate. Multiplication of values of a column in a result set. Similar to how SUM, AVG aggregate function works. There is no out-of-the-box function for the Product calculation.
Example
Calculate Product(Multiplication) of [Value] grouping by [CategoryId] for the following Table.
DECLARE @Temp_Table ASTABLE( [Value]float, [CategoryId]int)
INSERT INTO @Temp_Table (Id, Value, CategoryId)VALUES (1, 1), (2, 1), (3, 1), (1, 2), (2, 2), (3, 3), (3, 3)Expected Result Set
| CategoryId | |
|---|---|
| 1 | 6(1*2*3) |
| 2 | 2(1*2) |
| 3 | 9(3*3) |
Solution
SELECT CategoryId, ROUND(Exp(Sum(IIf([Value]=0,0,Log([Value]))))*IIf(Min([Value])=0,0,1),2)FROM @Temp_TableGROUP BY CategoryIdResult
| CategoryId | |
|---|---|
| 1 | 6 |
| 2 | 2 |
| 3 | 9 |
Happy Coding :)