考虑以下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-01
和2011-08-30
之间的所有日期,以便能够CAOLESCE并在pageviews
表中缺少0天。但是从那以后我很失落。
你知道如何解决这个问题吗?非常感谢任何帮助: - )
答案 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)