【发布时间】:2021-08-02 15:42:27
【问题描述】:
下表:
| AccountNo | Symbol | Amount |
|---|---|---|
| A1 | IBM | 10 |
| A1 | CSCO | 20 |
| A1 | GOOG | 30 |
| A2 | IBM | 40 |
| A2 | FB | 10 |
我需要获取帐户 A1 上的 IBM 百分比。即 10 * 100 / 60 = 16.6%
我需要获取帐户 A1 上 CSCO 的百分比。即20 * 100 / 60 = 33.33%
我需要获取帐户 A1 上的 GOOG 百分比。即30 * 100 / 60 = 50 %
我需要获取帐户 A2 上 IBM 的百分比。即40 * 100 / 50 = 80%
我需要获取帐户 A2 上的 FB 百分比。即10 * 100 / 50 = 20%
我尝试了以下查询但没有执行:
select AccountNo, SYMBOL, Value, Float(cast((value(Amount,0)) as DECIMAL(18,2))) / FLOAT(cast((value(t2.total,0)) as DECIMAL (18,2))) * 100
from mytable
(select sum(Amount) as total from mytable group by AccountNo) as T2
where Amount > 0
group by AccountNo, SYMBOL, Value, T2.total;
【问题讨论】:
-
你的 db2 平台和版本是什么?