mysql对所有id求积_关于数字求积、求和的处理

我们有时可能会有这样的需求,一表A结构大致如下

ID QTY

1 2

2 4

3 6

4 5

要求能够得到QTY字段的乘积2*4*6*5,利用sql如何实现?

oldwain是这样处理的,完全利用数学的函数知识解决了。看来要好好温习数学了,呵呵!

运用一下数学知识, 可以这样简化:

a * b * c = power(10, log(10, a) + log(10, b) + log(10, c)

测试数据:

create table t (id number, qty number);

insert into t values(1, 2);

insert into t values(2, 4);

insert into t values(3, 6);

insert into t values(4, 5);

Select power(10, Sum(Log(10, qty))) From t

POWER(10,SUM(LOG(10,QTY)))

--------------------------

240

有个数字8546我想把各个位数相加,请问如何实现?

因为只是存在一个字符串,如何没位去截取后再求sum是不是就行了呢?带着这样的思路,实现如下:

select sum(n) from (select substr('123456789',rownum,1) as n from dual connect by rownum <= length('123456789'));

SUM(N)

----------

45

将上面2种问题的解决方法备案,以便日后用得到!

[@more@]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值