dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

mysql の group by で積を計算する方法

2020-05-16 01:36:47 | mysql
mysql の group by で積を計算する方法のメモ。

group by を使えば sum() で和を計算することはできますが、積を計算する関数はありませんが、
以下のように log10() と pow() を使えば、積を計算することができます。
create table pro (
       id    integer,
       val   float
);

insert into pro set id = 1, val = 2;
insert into pro set id = 1, val = 3;
insert into pro set id = 1, val = 4;
insert into pro set id = 1, val = 5;

insert into pro set id = 2, val = 2;
insert into pro set id = 2, val = 3;
insert into pro set id = 2, val = 4;

select
        id
        , pow(10, sum(log10(val)))
from
        pro
group by
        id
;

実行結果は以下の通りです。
id      pow(10, sum(log10(val)))
1       120
2       24

積が計算できていることがわかります。