mysql以小时,天,周,月为单位查询

本文介绍了如何在MySQL中以小时、天、周、月为单位进行数据查询,解决group by可能产生的数据丢失问题。提供了一种高效、优雅的解决方案,包括创建视图以方便进行不同时间单位的查询。

mysql以小时,天,周,月为单位查询

背景

基本上要做数据统计分析的程序,都会涉及到类似这种按周,按月,按年,按自定义时间查询区间数据的需求。刚好今天写了这个代码,把整个思路及mysql语句整理下,供以后参考。
请添加图片描述

group by存在的问题

如果按照group by的查询,则会出现这种漏数据的情况:如果这段连续时间内,有某天没有数据,则会跳过那天的数据,直接统计到下个有数据的日期,此时会出现数据统计不完全、丢数据、数据对应不上的情况

group by 查询sql

select
	count(order_number) orderNum ,
	count(distinct customer_id) customerNum,
	sum(money) totalMoney,
	date(date_format(create_time, '%Y-%m-%d')) as thisweek 
from
	os_order_form
where 
	date(date_format(create_time, '%Y-%m-%d')) >=  date(subdate(curdate(), date_format(curdate(), '%w') - 1)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值