数据库中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}
本文介绍了一种在SQL Server中计算某列所有数值乘积的方法。利用数学转换EXP(SUM(LOG(列名)))来实现没有直接乘积函数的情况。适用于需要进行数值累积计算的场景。
表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}
1718
337
959

被折叠的 条评论
为什么被折叠?
&spm=1001.2101.3001.5002&articleId=96594564&d=1&t=3&u=4c810b39724444699f2695dc4684067d)