mysql 实现年月日按一段时间进行数据统计
发布时间:2023-02-13 13:36:51 所属栏目:MySql教程 来源:
导读: mysql 实现年月日按一段时间进行数据统计 1、查询数据表组成时间列表
SELECT
? ? @cdate := DATE_ADD(@cdate, INTERVAL + 1 {1}) c_time,
? ? t0.id
FROM
? ? ( SELECT @cdate := D
SELECT
? ? @cdate := DATE_ADD(@cdate, INTERVAL + 1 {1}) c_time,
? ? t0.id
FROM
? ? ( SELECT @cdate := D
mysql 实现年月日按一段时间进行数据统计 1、查询数据表组成时间列表 SELECT ? ? @cdate := DATE_ADD(@cdate, INTERVAL + 1 {1}) c_time, ? ? t0.id FROM ? ? ( SELECT @cdate := DATE_ADD( '{2}', INTERVAL + 0 {1}), id FROM time_base ) t0? LIMIT {3} 1 按年月日可分为: YEAR, MONTH, DAY2 需要组的时间数据的起始日期例如(2021, 2021-06, 2021-06-01)3 需要组的时间数据的总数,例如(7(近七年,近七月,近七天))这里的time_base 表可以是任何表,只要数据总量足够大于时间列表总数即可,表中有无时间字段并没有什么影响。 # 这里查询的时间结果没有按照所需要的格式进行显示,下面sql中会对查询的总体结果进行重新格式化 2、根据业务需求mysql数据表,对对应的数据表单进行数据筛选 select? ? ? DATE_FORMAT(a_t_w_h.create_time, '{0}') AS time, ? ? sum(a_t_w_h.use_water) as use_water from? ? ? archive_total_water_header a_t_w_h where? ? ? date_format(a_t_w_h.create_time, '{0}') between('{2}', '{4}') group by? ? ? date_format(a_t_w_h.create_time, '{0}') 0 时间格式化字符, 按年月日可分为:%Y, %Y-%m, %Y-%m-%d2 数据筛选的起始时间4 数据筛选的结束时间(上面3中的值其实就是4-2的值)3、 将时间和数据进行分组并求和,平均等 SELECT ? ? DATE_FORMAT( t1.c_time, '{0}') AS t_time, ? ? IFNULL(t2.use_water, 0) as water FROM ? ? ( ? ? SELECT ? ? ? ? @cdate := DATE_ADD(@cdate, INTERVAL - 1 {1}) c_time, ? ? ? ? t0.id ? ? FROM ? ? ? ? ( SELECT @cdate := DATE_ADD( '{2}', INTERVAL + 1 {1}), id FROM time_base ) t0? ? ? LIMIT {3} ? ? ) t1 left join ( ? ? select? ? ? ? ? DATE_FORMAT(a_t_w_h.create_time, '{0}') AS time, ? ? ? ? sum(a_t_w_h.use_water) as use_water ? ? from? ? ? ? ? archive_total_water_header a_t_w_h ? ? date_format(a_t_w_h.create_time, '{0}') between('{2}', '{4}') ? ? group by? ? ? ? ? date_format(a_t_w_h.create_time, '{0}') )t2 on date_format(t1.c_time, '{0}') = t2.time ORDER BY t1.c_time ### 如有其他方法再与大家分享!!! (编辑:开发网_新乡站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐