SQL 字段相乘的聚合操作

今天收到一个比较怪异的需求,需要查询数据库中某一字段所有数值的相乘结果

 

我的第一反应是做一个CLR的聚合函数,在每次处理的时候做相乘操作即可

 

但是目标的数据库是sql2000,无法使用CLR函数

 

到网上搜索了一下,发现了一个很不错的解决方案。

 

logx+logy=logx*y

 

这个是一个高中生都学过的对数计算,对数的相加等于指数的相乘,我们利用这个方式转换加法到乘法

 

 

实现方式,先对记录取对数log(),然后sum聚合,最后exp,结果就是记录相乘的结果

 

select exp(sum(log(col))) from table where......

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值