mysql有没有类似sum一样的*=函数
我想在获取几条数据之间的其中一个字段的乘积,字段是小数型的,如果是加可以用sum,但是用乘有没有这样的函数,如果mysql没有,自己怎么写这个函数?
------解决方案--------------------这个还真没有遇到过,请高人继续,我这里有一个变通的想法,你试试:
select agv(字段) * count(字段) from 表
------解决方案--------------------mysql> create table test1(a int);
Query OK, 0 rows affected (0.03 sec)
mysql> insert into test1 values(2);
Query OK, 1 row affected (0.00 sec)
mysql> insert into test1 values(3);
Query OK, 1 row affected (0.00 sec)
mysql> insert into test1 values(4);
Query OK, 1 row affected (0.00 sec)
mysql> insert into test1 values(5);
Query OK, 1 row affected (0.00 sec)
mysql> select power(10,sum(log(10,a))) from test1;
+--------------------------+
| power(10,sum(log(10,a))) |
+--------------------------+
| 119.99999999999996 |
+--------------------------+
1 row in set (0.00 sec)
mysql>
------解决方案--------------------
------解决方案--------------------null就判断一下变成1啊
select power(10,sum(log(10,ifnull(a,1)))) from test1;
------解决方案--------------------没有这种标准的聚合函数。只能自己写自定义函数或者在程序中实现。
------解决方案--------------------没有那个DB会提供乘积方法,应该不属于聚集方法,用sql直接计算,不太合理吧
应该在ap中直接将结果拿来计算