Laravel怎样高效简洁的查询近7天以来的每天的数据量,并分成七天
问题描述
项目后台有个线状表需要一组近7天以来每天的数据量,用于展示数据幅度的变化,比如展示近7天以来新增文章的数量变化。
文章是主键是id,发布时间存在time字段,怎么高效简洁的查询这组数据。
解决办法
select DATE_FORMAT(a.timeDay,'%m-%d') as time,ifnull(b.price,0) as price
from (
SELECT curdate() as timeDay
union all
SELECT date_sub(curdate(), interval 1 day) as timeDay
union all
SELECT date_sub(curdate(), interval 2 day) as timeDay
union all
SELECT date_sub(curdate(), interval 3 day) as timeDay
union all
SELECT date_sub(curdate(), interval 4 day) as timeDay
union all
SELECT date_sub(curdate(), interval 5 day) as timeDay
union all
SELECT date_sub(curdate(), interval 6 day) as timeDay
) a left join (
select date(deal_time) as time,sum(if(o.is_pay=1,o.real_price,0)) price
from goods_order o
where o.`status` = 1
group by date(o.deal_time) // 这里写你按照七天分组的sql
) b on a.timeDay = b.time order by time
做个统计表