接到老大排的活,需要作出乙個統計最近7天每天的資料做統計用,最終呈現出這樣的效果;
因為公司庫裡面所有關於時間都是直接儲存時間戳,給我帶來了一定的處理上的難度,幸好網上找到乙個很好的想法;
處理方式是:構建乙個最近7天的結果集,沒有的利用ifnull函式補0操作;
最終的sql如下:
select a.click_date,ifnull(b.count,0) as count
from (
select curdate() as click_date
union all
select date_sub(curdate(), interval 1 day) as click_date
union all
select date_sub(curdate(), interval 2 day) as click_date
union all
select date_sub(curdate(), interval 3 day) as click_date
union all
select date_sub(curdate(), interval 4 day) as click_date
union all
select date_sub(curdate(), interval 5 day) as click_date
union all
select date_sub(curdate(), interval 6 day) as click_date
) a left join (
select date(from_unixtime(gettime/1000,'%y%m%d')) as datetime, count(*) as count
from userwechatcard
group by date(from_unixtime(gettime/1000,'%y%m%d'))
) b on a.click_date = b.datetime;
其中有個地方需要注意一下:由於我的時間是時間戳型別,而curdate函式返回的是yyyy-mm-dd形式,因此需要在left join的時候將我的時間戳字段gettime進行轉換,轉換成與curdate函式返回一樣的形式,否則就查不到資料;
最終結果:
mysql查詢今天 昨天 7天 近30天資料
mysql查詢今天 昨天 7天 近30天 本月資料進行 文件資料彙總也算mysql技巧了 愛微網親測成功 mysql查詢今天 昨天 7天 近30天 本月資料進行 文件資料彙總也算mysql技巧了 愛微網親測成功 date datetime null default null comment 時間 時...
mysql 查詢近7天資料,缺失補0
相信很多人的專案都有這種需求,就是查詢近7天的記錄,但是這7天總有那麼幾天是沒資料的,所以缺失的只能補 0 下面的 不知道能不能看懂,我簡單的說一下思路 1 先查詢紅色字型的近7天,再轉換成日期 2 我的字段使用的是時間戳的方式去儲存,只能是先資料庫欄位先轉日期 2.1 先查詢自己想要的資料,用每天...
獲取當天,昨天,近7天,近30天的起始時間戳
param type param string startdate param string enddate return array notes 獲取當天,昨天,近7天,近30天的起始時間戳 time 2020 12 25 15 12 author xinhua.zhi function getd...