爲了更加直觀地觀察數據的變化情況,我們經常需要對數據進行統計,製作折線圖,餅圖,直方圖,來觀察數據在一段時間的變化,方便我們做出策略性地調整。
次數的統計是最常見的一種,可以觀察數據在一段時間內的變化,但也有多種需求,如觀察每小時數據的變化,每天數據的變化,每月數據變化,每年數據的變化。
如下圖:
但是如何設計一種方案來處理不同時間的變化呢?
我們應該儘可能地利用數據庫的基本功能來完成這些功能,因爲效率更加高。
1.把時間進行分組(不同類型分組不同)
時間戳方式:
-
按照小時分組
Select count(*) as count,date_format(FROM_UNIXTIME(createtime),’%Y-%m-%d %H’) as createdate from xtable group by createdate -
按照天分組
Select count(*) as count,date_format(FROM_UNIXTIME(createtime),’%Y-%m-%d’) as createdate from xtable group by createdate -
按照天分組
Select count(*) as count,date_format(FROM_UNIXTIME(createtime),’%Y-%m’) as createdate from xtable group by createdate -
按照年分組
Select count(*) as count,date_format(FROM_UNIXTIME(createtime),’%Y’) as createdate from xtable group by createdate日期時間格式(標準)
- 按照小時分組Select count(*) as count,date_format(createtime,’%Y-%m-%d %H’) as createdate from xtable group by createdate
-
按照天分組
Select count(*) as count,date_format(createtime,’%Y-%m-%d’) as createdate from xtable group by createdate -
按照天分組
Select count(*) as count,date_format(createtime,‘%Y-%m’) as createdate from xtable group by createdate -
按照年分組
Select count(*) as count,date_format(createtime,’%Y’) as createdate from xtable group by createdate2.多種類型數據的統計
我們統計數據經常統計一種數據,一般有多種類型,如中國的人口=農村人口+城市人口
這種情況要如何處理,才更加合理?假如先統計總數,再分別統計子項目數量,這樣子當某個子項目數量爲0時,統計就會出錯。
我們可以先統計出總的數據,如某段時間的中國人口數量變化,根據總數的日期(createdate )逐個查出農村和城市數量,這樣就不會統計出不需要的數據。