我想在获取几条数据之间的其中一个字段的乘积,字段是小数型的,如果是加可以用sum,但是用乘有没有这样的函数,如果mysql没有,自己怎么写这个函数?

解决方案 »

  1.   

    这个还真没有遇到过,请高人继续,我这里有一个变通的想法,你试试:
    select agv(字段) * count(字段) from 表
      

  2.   

    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>
      

  3.   


    这个是求和  和sum没区别吧
      

  4.   

    这其中有些字段为Null,你这样做也不行
      

  5.   

    null就判断一下变成1啊
    select power(10,sum(log(10,ifnull(a,1)))) from test1;
      

  6.   

    没有那个DB会提供乘积方法,应该不属于聚集方法,用sql直接计算,不太合理吧
    应该在ap中直接将结果拿来计算
      

  7.   

    这个到时不错。
    max(x*y)这样不行吗?
      

  8.   


    呵,发上去发现写错了,csdn不能删除不能编辑,真是不给后悔药吃啊。