MONTH计算COUNT的AVG
我试图显示2016年每个月的平均计数/记录数。下面的代码不显示每个月,而只显示2016年的月平均值:MONTH计算COUNT的AVG
SELECT AVG(DISTINCT DayCnt) AS AvgCnt
FROM
(
SELECT COUNT(*) As DayCnt
FROM table
WHERE YEAR(Insert_Date) = '2016'
GROUP BY MONTH(Insert_Date)
)
AS AvgCnt
我不知道,因为你没有张贴的数据,但如果我理解正确的话,这应该为你工作:
SELECT AVG(DayCnt) AS AvgCnt, mth
FROM
(
SELECT COUNT(*) As DayCnt, MONTH(Insert_Date) as mth
FROM table
WHERE YEAR(Insert_Date) = '2016'
GROUP BY MONTH(Insert_Date), DAY(Insert_Date) )
AS AvgCnt
GROUP BY mth
内部查询结果和外部之间的区别是什么? –
内部查询应该为您提供2016年的日期和月份的行数。外部查询应为您提供一个月内每天收到的平均行数。 – asemprini87
好的,但月组应该在天组之前 –
你首先应该是组每月和天你的结果和日常计算插入记录,之后得到每月插入记录的平均值试试这个:
SELECT monthGroup, AVG(DayCnt) AS AvgCnt
FROM
(
SELECT MONTH(Insert_Date) monthGroup, DAY(Insert_Date) dayGroup, COUNT(*) As DayCnt
FROM table
WHERE YEAR(Insert_Date) = '2016'
GROUP BY MONTH(Insert_Date), DAY(Insert_Date)
)
AS AvgCnt
GROUP BY monthGroup
您能否提供带有样本数据的表格脚本? – sam
子查询不是基本上做你想要的吗? –
标记您正在使用的dbms。 (在那里使用了一些产品特定的SQL函数...) – jarlh