2

考虑以下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)。

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

我不知道如何开始。我创建了一个daterange表格,其中包含所有日期,2011-01-01并且2011-08-30能够 CAOLESCE 并在pageviews表格中缺少的天数返回 0。但我从那里开始就迷路了。

你知道如何解决这个问题吗?任何帮助是极大的赞赏 :-)

4

3 回答 3

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

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

于 2012-08-16T11:13:34.030 回答
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;
于 2012-08-16T11:13:22.680 回答
1

像这样的东西?

SELECT DAY(daterange._date),SUM(pageviews)
FROM daterange 
LEFT JOIN pageviews ON daterange._date = pageviews._date
GROUP BY DAY(daterange._date)
于 2012-08-16T11:16:24.933 回答