概念:
使用對數可以達到你要的
下面是注意事項跟照你需求寫的範例
注意:
exp(SUM(ln(C))) 會有浮點數問題,所以要使用floor來取整數
範例:
with temp_table as (
select 'A' A , 'A' B , 2 C from dual
union all select 'B' A , 'B' B , 2 C from dual
union all select 'B' A , 'B' B , 2 C from dual
union all select 'B' A , 'B' B , 4 C from dual
union all select 'A' A , 'A' B , 58 C from dual
)
select A,B,SUM(C) 相加,floor(exp(SUM(ln(C)))) 相乘結果,count(1) 每組數量 from temp_table
group by A,B
;