sql - SQL:根据状态查找已完成任务的百分比
问题描述
我有一个表格,其中列出了任务以及一个标签,以指示它们是否已完成。该表如下所示:
任务 | 地位
Task1 | Done
Task2 | Done
Task3 | Not done
Task4 | Done
Task5 | Not done
我正在尝试提出一个查询,该查询将列出已完成任务的百分比,输出应如下所示:
总任务 | 已完成 | 完全的 %
5 | 3 | 60%
我面临的问题是我无法弄清楚如何计算已完成和未完成的任务以找到百分比。
解决方案
使用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;
推荐阅读
- c - 两个C代码读取寄存器的区别
- python - AttributeError:部分初始化的模块“face_recognition”没有属性“face_encodings”
- kotlin - 观察者模式在 Android MVVM 中不起作用
- npm - 如何使用标准版本的 npm 包自定义配置 CHANGELOG.md?
- typescript - 使用 @types/pdfjs-dist 覆盖嵌入到 pdfjs-dist 中的类型
- vb.net - 我应该使用 Imports 还是不使用?
- python - 如何解决这个问题:错误:命令错误退出状态 1:命令:/usr/bin/python /usr/local/
- python - 发出帮助命令时出现不和谐 py 错误
- amazon-web-services - 多接口 EC2 实例 - 更改源/目标检查的问题
- swift - 无法在 Xcode 12.4 Simulator Watch Series 6 44mm 中的 WatchOS 7.2 上滚动颜色