我有一个表格,列出了任务以及一个标签,以表明它们是否已完成。该表如下所示:
Task1 | Done
Task2 | Done
Task3 | Not done
Task4 | Done
Task5 | Not done
我正在尝试提出一个查询,列出已完成任务的百分比,输出应如下所示:
5 | 3 | 60%
我遇到的问题是我无法弄清楚如何计算已完成和未完成的任务以查找百分比。
答案 0 :(得分:1)
使用COUNT
功能查找总计数。然后使用SUM
函数和CASE
表达式的组合查找已完成的计数。并使用这两个值,找到已完成的百分比。
<强>查询强>
select t.TotalTask, t.Completed,
(cast(t.Completed as float) / cast(t.TotalTask as float)) * 100 as CompletedPercentage
from (
select count(task) as TotalTask
, sum(case status when 'Done' then 1 else 0 end) as Completed
from your_table_name
) as t;
<强> Find a demo here 强>
答案 1 :(得分:0)
你可以做条件聚合`完成
select totaltask, completed, 100 * completed / totaltask as CompletedPercentage
from (select count(*) as totaltask,
sum(case when status = 'Done' then 1 else 0 end) as completed
from table
) t;