计算百分比SQL

时间:2020-03-02 12:53:28

标签: sql sql-server tsql group-by count

我正在尝试运行一个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。

2 个答案:

答案 0 :(得分:0)

要计算按时项目的比例,可以使用avg()

AVG(CASE 
    WHEN DateEngineeringTargetComplete >= DateBlockReleased
    THEN 1.0 
    ELSE 0.0 
END) AS OnTimeRatio

如果您希望该值在0-100范围内,只需将比率乘以100。

答案 1 :(得分:0)

您只需要乘以1.0

if you are doing select a/b, do it like select a*1.0/b

在您的示例中,执行:/COUNT(*) * 100.0

相关问题