mysql 分段写入_mysql按时间分段统计的sql语句怎么写好?

我的数据库表结构如下:

1c9c30acf9488a48c5d309d760ed0171.png

字段分别是ID,NUM1,NUM2, TIME1,TIME2, MONEY.

想要按照15分钟为间隔来统计ID的数量。效果如同下面的sql语句。

SELECT

sum(CASE when TIME1 >= '2014-02-27 8:00:00' and TIME1 < '2014-02-27 8:15:00' then 1 else 0 end) AS '1',

sum(CASE when TIME1 >= '2014-02-27 8:15:00' AND TIME1 < '2014-02-27 8:30:00' then 1 else 0 end) AS '2',

sum(CASE when TIME1 >= '2014-02-27 8:30:00' AND TIME1 < '2014-02-27 8:45:00' then 1 else 0 end) AS '3',

sum(CASE when TIME1 >= '2014-02-27 8:45:00' AND TIME1 < '2014-02-27 9:00:00' then 1 else 0 end) AS '4',

sum(CASE when TIME1 >= '2014-02-27 9:00:00' and TIME1 < '2014-02-27 9:15:00' then 1 else 0 end) AS '5'

from dealdata;

d117fd7b65ee6b379a4d7360a83871b3.png

但是像上面那么写重复代码多,并且如果我改成30分钟的话,就要改动很多,所以求助sql大神,看有什么好的方法。

———————————————————————————————————分割线————————————————————————————————————

谢谢 arm 同志的帮助,现在能查询出现了

1c98c5f6a38b28d209e6433456e7a849.png

count(id)就是进站的人

但是有的时间段,根本没有进站的人,所以有的时间段没有,例如5:00 -- 5:15

如果要将没有进站的人的时间段 补全为0,该怎么做呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值