日期:2014-05-18  浏览次数:21081 次

在sql中SUM可以累加,有没有方法可以累乘?
在sql中SUM可以累加,有没有方法可以累乘?就是把某字段的值全部相乘,有没有好一点的方法

------解决方案--------------------
自己寫個函數就可以了
------解决方案--------------------
你真的认为这个能得到准确结果? 对数是要转换成浮点数运算的。
------解决方案--------------------

select * from t
declare @i bigint --把它定義為bigint,應該夠用吧
set @i=1

select @i=@i*qty from t
print @i
------解决方案--------------------
刚才在oralce社区问了一下,一会就有人回了下面一段SQL
--测试数据
create table t(id int,qty int);
insert into t
select 1,2 from dual union all
select 2,4 from dual union all
select 3,6 from dual union all
select 4,5 from dual;
--执行查询
Select power(10, Sum(Log(10, qty))) From t
--查询结果
240

我想了10分钟才想明白,不得不服,做oralce的都是搞大项目的,牛人就是多。
明天再发到java社区看看,搞java的牛人更多,看看还有什么解法,呵呵。
-----------------------------------------
同樣放到SQL里,結果是239,會轉換為float計算
Select power(10, Sum(Log10( qty))) From t
------解决方案--------------------
用 Avg()算出平均数,再乘以Count()算出的总数。
试试 Avg()*Count()