作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想根据时间间隔对数据进行分组,假设以 3 小时为一组。如何在数据时间范围内对数据进行分组。
我的数据就像
DocId, UserCode, ProcessCode, ProcessDone
1 1 10 21/11/2015 11:04:00
2 1 10 21/11/2015 12:14:00
3 1 20 21/11/2015 11:04:00
4 1 20 21/11/2015 11:54:00
5 1 30 21/11/2015 13:04:00
例如,在上面的数据中,我想根据 UserCode
过程对数据进行分组,在一个时间帧内使用,让我们说 10-12。
喜欢
UserCode, Process, Total
1 10 1
1 20 2
由于此代码总计数是根据 10-12 之间的时间完成的,并按 UserCode
和 ProcessCode
分组。
最佳答案
试试这个方法:
select UserCode, ProcessCode, count(1) Total
from tab
where convert(time,ProcessDone) between '10:00' and '12:00'
group by UserCode, ProcessCode
<强> Sql Fiddle演示
或
select UserCode, ProcessCode, count(1) Total
from tab
where DATEPART(hh,ProcessDone) > 10 and DATEPART(hh,ProcessDone) < 12
group by UserCode, ProcessCode
<强> Sql Fiddle演示
或在分组依据
中包含日期
select UserCode, ProcessCode, count(1) Total
from tab
where convert(time,ProcessDone) between '10:00' and '12:00'
group by UserCode, ProcessCode, convert(date,ProcessDone)
<强> Sql Fiddle演示
关于SQL Server : How to group by a datetime column based on a time interval (Such as within 2 hours),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30211073/
我是一名优秀的程序员,十分优秀!