数据库中SQL实现某列的乘积(SqlSERVER)
表A 有一列Score
SCORE |
1 |
3 |
2 |
现在想得到该列的乘积。但是SqlServer却没有提供聚合函数。
思路:通过数据转化得到实现乘积的方式
A*B = EXP(LOG(A*B)) = EXP(LOGA+LOGB) = EXP(SUM(LOG(FiledName)))
上面的表A那一列Score的乘积是
SELECT EXP(SUM(LOG(Score))) From A
需要补充的是LOG函数的定义域{x>0}