我正在尝试检索每月添加到数据库的平均记录数。然而,几个月没有添加任何记录,该行缺失,因此没有计算到平均值。
以下是查询:
SELECT AVG(a.count) AS AVG
FROM ( SELECT COUNT(*) AS count, MONTH(InsertedTimestamp) AS Month
FROM Certificates
WHERE InsertedTimestamp >= '9/19/2014'
AND InsertedTimestamp <= '7/1/2015'
GROUP BY MONTH(InsertedTimestamp)
) AS a
当我只运行内部查询时,只显示月份9,10,11的结果,因为12,1,2,3,4,5,6,7个月没有记录。如何将这些缺失的行添加到表中以获得正确的月平均值?
谢谢!
答案 0 :(得分:0)
这很容易修复,只需使用sum / cnt:
SELECT COUNT(*) / (TIMESTAMPDIFF(month, '2014-09-19', '2015-07-01' ) + 1)
FROM Certificates
WHERE InsertedTimestamp >= '2014-09-19' AND
InsertedTimestamp <= '2015-07-01' ;
你甚至不需要子查询。