mysql查询前12个月的数据_MySQL统计过去12个月的数据(包括本月)

本文介绍了如何使用MySQL查询过去12个月的数据,特别是针对body_infrared字段大于0的情况进行统计。首先,通过日期筛选获取过去12个月的数据,然后统计特定设备在这段时间内body_infrared大于0的记录数。由于原始数据只包含部分月份,通过创建视图填充缺失的月份,最后将两者结合得到完整的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

66b39cefea89699334f2cf28c29bb452.gif

1、问题

需要统计过去12个月的

原始数据表如下图,数据是按分钟存储的。也就是说要统计每个月一共有多少条body_infared大于0的数据。

66b39cefea89699334f2cf28c29bb452.gif

2、处理过程

2.1 获取12个月到现在的数据

select * from device_data t where DATE_FORMAT(t.time,'%Y-%m')> DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m');

2.2 统计某台设备在过去12个月中每个月body_infared大于0的数据之和。

select DATE_FORMAT(t.time,'%Y-%m') month,count(t.id) minute from device_data t where t.body_infrared>0 and t.device_id=13 AND DATE_FORMAT(time,'%Y-%m')> DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m') group by device_id,month

获取结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值