sql分组之后求乘积可用Exp(sum(LOG(AA)))该函数
(2014-06-04 20:21:14)
标签:
exp |
分类: SqlServer |
declare @A table (AA int)
insert into @A (AA) values(1)
insert into @A (AA)
values(2)
insert into @A (AA)
values(3)
insert into @A (AA)
values(4)
select Exp(sum(LOG(AA))) from
@A
注意:
使用這個語法來計算每筆資料列的相乘
需特別注意 用來接收的變量不可為INT
建議可以使用十進位
EXP(SUM(LOG(f_count)))
已下為測試語法
declare @aa table (f_aa int)
insert into @aa (f_aa) values (1)
insert into @aa (f_aa) values (1)
insert into @aa (f_aa) values (2)
insert into @aa (f_aa) values (2)
insert into @aa (f_aa) values (3)
insert into @aa (f_aa) values (3)
select * from @aa
--declare @bb table (f_bb INT)
--insert into @bb (f_bb)
--这里我用int型來存放的話,得到的值是7
declare @bb int =
(select EXP(SUM(LOG(f_count))) from
(select count(*) as f_count from @aa group by f_aa) as
tt)
select @bb
--如果我用decimal來存放,得到的是8
declare @bb int
=
(select EXP(SUM(LOG(f_count)))
from
(select count(*) as f_count from
@aa group by f_aa) as tt)
select @bb
--這裡我用10000來乘以這個數字,int型的話,得到79999
declare @bb int = 10000
(select EXP(SUM(LOG(f_count)))
from
(select count(*) as f_count from
@aa group by f_aa) as tt)
select @bb
--這裡我用10000來乘以這個數字,decimal型的話,得到80000
declare @bb int = 10000
(select EXP(SUM(LOG(f_count)))
from
(select count(*) as f_count from
@aa group by f_aa) as tt)
select @bb
查到EXP:傳回指定float運算式的指數值

加载中…