SQL 查询 SUM 并除以不同的日期计数

SQL Query SUM and Divide by Distinct Date Count

我帮你,我正在寻找一个数据字段的总和,然后想将它除以该字段中不同日期的数量。

SUM(CASE WHEN dateResolved IS NOT NULL 
         THEN 1 ELSE 0 
    END) / DISTINCT(dateResolved) AvgPerDay

如果 dateResolved 中有 32 个日期,有 5 个不同的日期,我希望它是 return 6.4.

默认情况下,它会执行您需要的整数除法:

SUM(CASE WHEN dateResolved IS NOT NULL 
         THEN 1 ELSE 0 
    END) * 1.0 / COUNT(DISTINCT dateResolved) AvgPerDay

然而,简单地 count 也可以:

COUNT(dateResolved) * 1.0 / COUNT(DISTINCT dateResolved) AvgPerDay

COUNT(dateResolved) 将忽略 null 值。

我会这样做:

SUM(CASE WHEN dateResolved IS NOT NULL 
         THEN 1.0 ELSE 0 
    END) / COUNT(DISTINCT dateResolved) as AvgPerDay

但这更简单地表述为:

COUNT(dateResolved) * 1.0 / COUNT(DISTINCT dateResolved) as AvgPerDay