首页 > 解决方案 > SQL:根据状态查找已完成任务的百分比

问题描述

我有一个表格,其中列出了任务以及一个标签,以指示它们是否已完成。该表如下所示:

任务 | 地位

Task1 | Done

Task2 | Done

Task3 | Not done

Task4 | Done

Task5 | Not done

我正在尝试提出一个查询,该查询将列出已完成任务的百分比,输出应如下所示:

总任务 | 已完成 | 完全的 %

        5     |       3       |      60%

我面临的问题是我无法弄清楚如何计算已完成和未完成的任务以找到百分比。

标签: sqloraclepercentage

解决方案


使用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;

在此处查找演示


推荐阅读