1. 程式人生 > >mysql如何出查出最近7天,最近30天,最近n天的記錄?

mysql如何出查出最近7天,最近30天,最近n天的記錄?

所有 說了 group by created value 分享 mage blog ifnull

已查詢瀏覽量為例:原始數據如下:

技術分享

思路分析:數據有了,統計某一天的瀏覽量,所有瀏覽量,或固定時間段內的瀏覽量在這裏我們就不多說了,大家都會,那我們是如何將最近七天的數據統計出來呢?

首先,我們說的最近7天,最近一周,並不是指數據庫裏所存的最後7天的數據,而是從今天算起,往前7天內數據庫中的數據。這樣的話,這樣的話,就是以時間為主線(主表)

來統計時間所對應的瀏覽量。

select DATE_FORMAT(mycreatedate,‘%m-%d‘) as countKey,ifnull(COUNT(pv.createdate), 0) as countValue from (
SELECT curdate() as mycreatedate

union all
SELECT date_sub(curdate(), interval 1 day) as mycreatedate
union all
SELECT date_sub(curdate(), interval 2 day) as mycreatedate
union all
SELECT date_sub(curdate(), interval 3 day) as mycreatedate
union all
SELECT date_sub(curdate(), interval 4 day) as mycreatedate
union all
SELECT date_sub(curdate(), interval 5 day) as mycreatedate
union all
SELECT date_sub(curdate(), interval 6 day) as mycreatedate
) as total
LEFT JOIN pageview pv on DATE_FORMAT(pv.createdate,‘%Y-%m-%d‘)=total.mycreatedate GROUP BY mycreatedate

先查出最近7天是哪7天,然後left join ,有數據,我們統計那一天的count,沒有的話補0,利用函數:ifnull(COUNT(pv.createdate), 0)來實現補0

查詢結果如下:

技術分享

這樣就查詢出了最近7天每一天的瀏覽量,當然了,應用在瀏覽量統計圖(echarts)中就出現了如下效果:

技術分享

這裏使用的是echarts來做的報表,使用也非常簡單,官網有很多樣式可以選擇,感興趣的小夥伴可以到官網看看:http://echarts.baidu.com/examples.html

mysql如何出查出最近7天,最近30天,最近n天的記錄?