所用数据表:

一、根据日期分组
- 使用
convert()函数方式
--根据年月
select convert(varchar(7),CreatTime,120)日期,COUNT(*) 次数,sum(Money)总数 from Orders
group by convert(varchar(7),CreatTime,120)
根据convert 的第一个参数,设置结果的长度达到更具年月分组或年月日分组等
2017-09 长度 7
varchar(7)2017-09-01 长度10
varchar(10)
--根据年月日
select convert(varchar(10),CreatTime,120)日期,COUNT(*) 次数,sum(Money)总数 from Orders
group by convert(varchar(10),CreatTime,120)


2. 先查出对应的年月日等时间,再根据查询出的字段分组
--或者
select YEAR(CreatTime) 年,month(CreatTime) 月,COUNT(*) 次数,sum(Money)总数 from Orders
group by month(CreatTime),YEAR(CreatTime)
order by 年,月 asc

二、根据时间段分组(每三个小时一组)
dataname:返回代表指定日期的指定日期部分的字符串。一个参数代表返回的格式,第二个参数为具体值
dw:星期几,qq, q:季度,yy, yyyy:年,mm,m:月,dd、d:日,hh:小时,mi, n:分钟 ss、s:秒,ms:毫秒
select CONVERT(varchar(11),convert(varchar(2),datename(hh,CreatTime) / 3 *3)+':00~'+convert(varchar(2),
row_number() over(order by datename(hh,CreatTime) / 3)*3-1)+':59') 时间段
,COUNT(*)次数,sum(Money)总数 from Orders
group by datename(hh,CreatTime) / 3

本文介绍如何使用SQL对订单数据进行日期和时间段分组查询,包括按年月、年月日分组及每三小时分组的方法,并提供具体实现代码。
&spm=1001.2101.3001.5002&articleId=114658720&d=1&t=3&u=ec7eeb1975264b24b89bc495d6d29c82)
3958

被折叠的 条评论
为什么被折叠?



