sql - 计算百分比 SQL
问题描述
我正在尝试运行一个 SQL 查询,该查询每月计算工程完成项目所需的平均时间和按时项目的百分比。
SELECT
AVG(DATEDIFF(DAY, [DateBlockReleased], [DateEngineeringTargetComplete])),
SUM(IIF(DATEDIFF(DAY, [DateBlockReleased], [DateEngineeringTargetComplete]) >= 0, 1, 0)) AS [OnTime]
FROM
[JobData].[JobData],
[JobData].[BOMInfo],
[JobData].[DesignInfo]
WHERE ...
这目前返回平均花费的时间和按时项目的数量,但是,我不确定如何将其除以项目总数。我尝试在总和之后添加 /COUNT(*) * 100 但这总是返回 0。
解决方案
要计算按时项目的比率,您可以使用avg()
:
AVG(CASE
WHEN DateEngineeringTargetComplete >= DateBlockReleased
THEN 1.0
ELSE 0.0
END) AS OnTimeRatio
如果您想要 0-100 范围内的值,只需将比率乘以 100。
推荐阅读
- mysql-workbench - 在mysql工作台中插入日期时间的正确方法是什么?
- wordpress - 尝试创建空的 php 文件导致无法打开流权限被拒绝 wordpress
- selenium - 如何使 testNG 按测试顺序逐类运行 - testng
- java - 使用 Tablesaw 读取 excel 导致 OutOfMemoryError
- android - webrtc 本机库中的随机崩溃
- android - ADB 命令适用于手机 zzzzzzzzzzzzzzzz
- javascript - 异步调用具有多个返回的函数
- java - ProcessWindowFunction (Apache Flink Java) 中的键控状态存储行为
- foreach - 如何一次为部分中的文本字段实现视图修饰符?
- maven - 使用 maven 程序集插件从 jar-with-dependencies 中删除文件