SQL - 按时间间隔对结果进行分组

时间:2012-10-04 09:02:49

标签: sql time frame sql-server-2012 intervals

使用给定的表结构(eventTime以秒为单位)我想按给定的时间范围对结果进行分组:

例如:5分钟

0 to 5:   1 
5 to 10:  2
10 to 15: 3
.....

如何在SQL Server 2012中完成此操作?

谢谢!

弗洛里安

CREATE TABLE [dbo].[evalHubSupply](
[evalHubSupplyId] [int] IDENTITY(1,1) NOT NULL,
[projectId] [int] NOT NULL,
[scenarioId] [int] NOT NULL,
[iterationId] [int] NOT NULL,
[evalExportId] [int] NOT NULL,
[eventType] [varchar](50) NOT NULL,
[eventTime] [int] NOT NULL,
[stopId] [varchar](50) NOT NULL,
[stopName] [varchar](50) NULL,
[vehicleId] [varchar](50) NOT NULL,
[transitLineId] [varchar](50) NULL,
[transitRouteId] [varchar](50) NULL,
[capacity] [int] NULL,
[arrivalTimeAtStop] [int] NULL,
[agentsOnBoard] [int] NULL)

样本数据(间隔1小时):

https://dl.dropbox.com/u/481455/table_data.xlsx 要么 https://dl.dropbox.com/u/481455/table_data_open.ods

“数据表”选项卡包含来自evalHubSupply的示例数据。 “时间间隔”列计算eventTime与之相关的间隔(在本例中为每小时)。结果选项卡计算与特定时间间隔相关的事件数。

1 个答案:

答案 0 :(得分:1)

这将给出每5分钟组中的记录数

select eventTime/5,count(*)
from   evalHubSupply
group by eventTime/5