Moh*_*hit 5 sql t-sql sql-server group-by sql-server-2008
我想根据时间间隔对数据进行分组,让我们说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
Run Code Online (Sandbox Code Playgroud)
例如,在上面的数据中,我想UserCode在一段时间内使用流程对数据进行分组,让我们说10-12.
喜欢
UserCode, Process, Total
1 10 1
1 20 2
Run Code Online (Sandbox Code Playgroud)
由于此代码总计数基于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
Run Code Online (Sandbox Code Playgroud)
或者
select UserCode, ProcessCode, count(1) Total
from tab
where DATEPART(hh,ProcessDone) > 10 and DATEPART(hh,ProcessDone) < 12
group by UserCode, ProcessCode
Run Code Online (Sandbox Code Playgroud)
或包括date在group by
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
250 次 |
| 最近记录: |