gpt4 book ai didi

sql - 在 SQL SERVER 中执行乘法(SET BASED APPROACH)

转载 作者:行者123 更新时间:2023-12-05 00:16:06 24 4
gpt4 key购买 nike

假设我有如下表格:

tblNumbers

Numbers
4
5
3
6

如何使用 SET BASED 方法执行乘法,以便输出为:

Output
360

N.B~ 没有硬性规定只能有四个数字,但我更喜欢使用 CTE 和/或相关子查询的答案。

最佳答案

您可以使用利用以下数学事实的对数/指数:

log(a*b*c...*n)=log(a)+log(b)+log(c)...+log(n)

因此,您可以使用 sum 函数将一列的所有对数相加,然后取该和的指数,得到该列的聚合乘积:

create table #tbl (val int)
insert into #tbl (val) values(1)
insert into #tbl (val) values(2)
insert into #tbl (val) values(3)
insert into #tbl (val) values(4)

select exp(sum(log(val))) from #tbl

drop table #tbl

如果我没记错的话,有一个边缘情况需要处理...... log(0) 是一个错误。

关于sql - 在 SQL SERVER 中执行乘法(SET BASED APPROACH),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1490433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com