我有一個數據庫,其中包含一些圖像的信息,每行包含一個createdAt
日期和一個viewCount
。數據範圍從2014年9月至今(2016年7月)。我想獲得的所有圖像視圖的量的總和每月月供MySQL`SUM`與`GROUP BY`在結果中缺少數據
當我運行查詢
SELECT YEAR(createdAt), MONTH(createdAt), SUM(viewCount)
FROM Images
GROUP BY MONTH(createdAt);
我只是在2014年9月和2015年8月
之間返回12行有成果Year | Month | Views
-------------------
2014 | 9 | 1452
2014 | 10 | 279
2014 | 11 | 34428
2014 | 12 | 4763
2015 | 1 | 2826
2015 | 2 | 777
2015 | 3 | 568
2015 | 4 | 1309
2015 | 5 | 46744
2015 | 6 | 1541
2015 | 7 | 8160
2015 | 8 | 91
如果我添加日期剋制它會給我的最新數據,但同樣只有12行
SELECT YEAR(createdAt), MONTH(createdAt), SUM(viewCount)
FROM Images WHERE createdAt > DATE('2015-08-01 00:00:00')
GROUP BY MONTH(createdAt);
Year | Month | Views
--------------------
2015 | 8 | 981
2015 | 9 | 1031
2015 | 10 | 2566
2015 | 11 | 3325
2015 | 12 | 411
2016 | 1 | 2140
2016 | 2 | 710
2016 | 3 | 714
2016 | 4 | 1985
2016 | 5 | 426
2016 | 6 | 119
2016 | 7 | 81
我意識到,自從7月份以來,第二個查詢停在那裏,因爲這是數據結束的地方,但爲什麼第一個查詢不會返回所有結果呢?
來看通過它出現什麼你想要的,也儘量用'YEAR(createdAt)'以及在第一個查詢分組。 –