如何计算MySQL中每月每日的综合浏览量?

时间:2012-08-16 11:08:03

标签: mysql

考虑以下pageviews(左)和daterange(右)表:

_date       pageviews       _date
---------------------       ----------
2011-01-01  21331           2011-01-01
2011-01-02  32143           2011-01-02
2011-01-04  23434           2011-01-03
.                           .
.                           .
2011-08-30  32322           2011-08-30

该表包含具有相应网站综合浏览量的日期。请注意,有几天没有任何综合浏览量(例如2011-01-03)。

我需要的是一个查询来计算每月每日综合浏览量的总数。所以它应该添加januari 1st + februari 1st + ... + 11月1日的第一个值的浏览量,然后januari 2 + februari 2 + ... februari 3作为第二个值。因此,查询的输出为31天(编号为1到31),并具有相应的综合浏览量。

我不清楚如何开始。我创建了一个daterange表,其中包含2011-01-012011-08-30之间的所有日期,以便能够CAOLESCE并在pageviews表中缺少0天。但是从那以后我很失落。

你知道如何解决这个问题吗?非常感谢任何帮助: - )

3 个答案:

答案 0 :(得分:3)

SELECT DAY(_date),SUM(pageviews) FROM pageviews GROUP BY DAY(_date)

希望以上查询能解决问题。

答案 1 :(得分:2)

我认为这就是你要找的东西:

SELECT a._date, SUM(IFNULL(b.pageviews, 0)) AS total_pageviews
FROM daterange a
     LEFT JOIN pageviews b
         ON DAYOFMONTH(a._date) = DAYOFMONTH(b._date)
GROUP BY DAYOFMONTH(a._date) 
ORDER BY a._date;

答案 2 :(得分:1)

这样的东西?

SELECT DAY(daterange._date),SUM(pageviews)
FROM daterange 
LEFT JOIN pageviews ON daterange._date = pageviews._date
GROUP BY DAY(daterange._date)