oracle中的乘法用*表示。
创新互联建站是一家专注于成都做网站、成都网站建设和成都电信服务器托管的网络公司,有着丰富的建站经验和案例。
工具:oracle 10g,plsql
步骤:
1、打开plsql,登录到指定数据。
2、创建一个查询,输入要计算的乘法公式,如计算5×7
select 5*7 from dual;
3、对于小数也是同样计算方法,但是可采用四舍五入的方式保留小数,如0.23×0.5按四舍五入保留2位小数。
select round(0.23*0.5,2) from dual;
1、首先在oracle中avg函数,使用聚合函数在计算平均值时,会报空值排除在外。
2、刚才在计算的时候结果是550,而comm列的总各为2200 所以计算平均时是只计算了除了空值的行。
3、需要注意的是,avg函数不能单独使用在where条件中不然会报如下错误。
4、如果想要查询出大于平均值的结果,需要使用group by ...having 子句。
5、然后用count函数用来统计列的总行数,就完成了。
如果只是A字段和B字段相乘的话,直接set C=A*B就行了,如果是不确定,可以推导公式,利用指数和对数直接的转化,不过这是针对列的,
Select power(10, Sum(Log(10, A))) From t,
Sum(Log(10, A))) 得到的是log(a1)+log(a2)+....+log(an)=log(a1*a2*...*an),power函数就是对log(a1*a2*...*an)求对数,也就是10^log(a1*a2*...*an)=a1*a2*...*an,不知道楼主数学如何,这个数学公式应该能看懂的吧?还是高中的,怀念啊!
别忘了给最佳答案:)
算法exp(ln(a)+ln(b)+ln(c))=a*b*c,但ln()要求参数只能是正数,所以引入了abs()和sign()两个函数;另外如果乘数有0,乘积必为0。
select
case count(case sign(RATE) when 0 then 1 else null end)
when 0 then
case mod(sum(case sign(RATE) when -1 then 1 else 0 end),2)
when 1 then -1
else 1
end *
exp(sum(ln(abs(case RATE when 0 then null else RATE end))))
else 0
end "PRODUCT(RATE)"
from
(SELECT ID,PID,RATE
FROM TEST_TABLE
START WITH ID = '根节点' CONNECT BY PRIOR PID = ID);
当然有:
sum((条件1)*(条件2)*(条件3)*…*(求和区域)) 数组,要三键结束
sumif
sumifs