2012-10-04 85 views
4

在給定的表結構(eventTime是秒)欲組的結果通過一個給定的時間幀:SQL - 組結果由時間間隔

例如: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.xlsxhttps://dl.dropbox.com/u/481455/table_data_open.ods

標籤 「表數據」 中包含從evalHubSupply樣本數據。 列「時間間隔」計算eventTime與之相關的時間間隔(本例中爲每小時)。結果選項卡計算有多少事件與特定時間間隔相關。

回答

1

這將每5分鐘組

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

您好在得到的記錄數,我需要組由EVENTTIME(一個或多個),其落入一個特定的時間幀(0至5,5至10的結果,...)。您的解決方案按照特定的時間對結果進行分組 - 因爲我的eventTime是唯一的,所以每個事件記錄都有一個結果行。 – red

+0

對不起,我不明白你的要求..你可以更新你的問題,並提供樣品數據 –

+0

嘿,對不起,你的回答是完全正確的。只需要將eventTime/XX四捨五入,現在一切都很好。謝謝! – red