【发布时间】:2016-04-12 16:07:26
【问题描述】:
【问题讨论】:
标签: sql
【问题讨论】:
标签: sql
不知道您使用的是什么数据库,所以试试 Oracle。 首先,您需要创建一个新表,包括新列 PERCENT_COMPLETED
select STATE,WIDGETS_REQUIRED,WIDGETS_COMPLETED,
WIDGETS_COMPLETED/WIDGETS_REQUIRED*100 | '%' as PERCENT_COMPLETED
from table;
那么你需要在其中插入一个新行
select
'Total' as STATE,
sum(WIDGETS_REQUIRED) as WIDGETS_REQUIRED,
sum(WIDGETS_COMPLETED) as WIDGETS_COMPLETED,
sum(WIDGETS_COMPLETED)/sum(WIDGETS_REQUIRED)*100 | '%' as PERCENT_COMPLETED
into new_table
from table;
【讨论】:
|是什么意思?
||。
在 MYSQL 中,我尝试了这个解决方案。 首先,插入具有 3 个值的行:STATE、WIDGETS_REQUIRED、WIDGETS_COMPLETED。您可以稍后插入这 3 个值,但现在插入它们更方便。
insert into FIGURE_A values
("TOTAL", 48, 33);
其次,添加一列:percent_complete
alter table FIGURE_A
ADD percent_complete decimal(5,2);
这里你应该注意到你需要添加一个约束。见this question.
所以,我们需要添加检查约束:
alter table FIGURE_A
ADD constraint chk_range CHECK (percent_complete>=0 and percent_complete<=100);
最后,我们只添加百分比值。见here。有很多方法可以计算百分比。而this question更适合你的情况,因为你需要更新,而不仅仅是计算。
update FIGURE_A
set percent_complete = WIDGETS_COMPLETED*100/WIDGETS_REQUIRED
final result 可能看起来像这样。
【讨论】: