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