MySQL批量查询每日会员总数统计

批量查询统计每日的会员数量,按理应该是要写存储过程,只是目前来说还是写sql查询比较方便一些,因此采用了拼接的方式来得到sql,然后使用得到的sql进行查询即可。(这一点有点跟上一篇的批量修改表明类似)

1
2
3
4
select distinct CONCAT('SELECT ''',DATE_FORMAT(date_sub(`time`,INTERVAL 1 DAY),"%Y-%m-%d"),''' 日期,count(id) 数量 FROM `member` where `time` between ''2013-01-01'' and ''',DATE_FORMAT(`time`,"%Y-%m-%d"),'''',' union all') 
FROM `member`
where `time` between '2015-02-11' and '2015-02-26'
order by `time`

相关函数简单说明

concat函数用于字符串拼接,其间的字符串用逗号隔开,而date_sub函数用于得出前一天的日期,比如如果要得出昨天的日期,使用

1
select date_sub(now(),interval 1 day)

得出结果为昨天的时间

1
2015-02-25 16:46:29

得出这样的时间,对于需要做对比的最小单位是日的情况,需要省略掉时间部分,这时使用date_format函数,用于将时间格式化为想要的格式。将上面的语句做修改

1
select date_format(date_sub(now(),interval 1 day),'%Y-%m-%d')

得出结果为昨天的日期部分

1
2015-02-25

接下来对日期进行对比统计即可。

坚持原创技术分享,您的支持将鼓励我继续创作!