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>
探讨
这个还真没有遇到过,请高人继续,我这里有一个变通的想法,你试试:
select agv(字段) * count(字段) from 表
null就判断一下变成1啊
select power(10,sum(log(10,ifnull(a,1)))) from test1;
没有这种标准的聚合函数。只能自己写自定义函数或者在程序中实现。
没有那个DB会提供乘积方法,应该不属于聚集方法,用sql直接计算,不太合理吧
应该在ap中直接将结果拿来计算