GROUP BY 以后 如果你想要去计算分组数据的连续乘积 可以用 POWER(10,SUM(LOG10(字段)))
原理:两个数相乘等于相同底数的幂想加。如10*10 = 10的(1+1)次幂 =10的( LG10+LG10)次幂
因此可以计算LOG10(字段) 的和 SUM(LOG10(字段)) 再进行转换POWER(10,SUM(LOG10(字段)))
DECLARE @AA TABLE (ID INT,VAL INT)
INSERT INTO @AA
SELECT 1,1 UNION ALL
SELECT 1,2 UNION ALL
SELECT 1,3 UNION ALL
SELECT 2,4 UNION ALL
SELECT 2,5 UNION ALL
SELECT 2,6 UNION ALL
SELECT 3,7 UNION ALL
SELECT 3,8 UNION ALL
SELECT 3,9
SELECT ID,CJ = POWER(10,SUM(LOG10(VAL)))
FROM @AA
GROUP BY ID
/*ID CJ
----------- -----------
1 6
2 120
3 503
*/