聽起來你在這種情況下需要一個數字表來加入會話存活的秒數。該表格必須設置爲您能夠查詢的最大時間長度(以秒爲單位)。
有了這樣一個表,你可以寫這樣的查詢:
CREATE TABLE Numbers
(
Number INT IDENTITY(1,1) PRIMARY KEY CLUSTERED
)
WHILE COALESCE(SCOPE_IDENTITY(), 0) <= 1000000
BEGIN
INSERT #Numbers DEFAULT VALUES
END
CREATE TABLE #Calls
(
SessionID int,
SessionStartTime datetime,
SessionCloseTime datetime
)
INSERT INTO #Calls VALUES (24, '2012-10-16 01:00:06.000', '2012-10-16 01:01:22.000')
INSERT INTO #Calls VALUES (24, '2012-10-16 01:00:08.000', '2012-10-16 01:01:10.000')
INSERT INTO #Calls VALUES (24, '2012-10-16 01:00:16.000', '2012-10-16 01:01:12.000')
INSERT INTO #Calls VALUES (24, '2012-10-16 01:00:30.000', '2012-10-16 01:01:48.000')
INSERT INTO #Calls VALUES (24, '2012-10-16 01:00:41.000', '2012-10-16 01:02:08.000')
INSERT INTO #Calls VALUES (24, '2012-10-16 01:00:48.000', '2012-10-16 01:01:34.000')
INSERT INTO #Calls VALUES (24, '2012-10-16 01:00:56.000', '2012-10-16 01:03:09.000')
INSERT INTO #Calls VALUES (24, '2012-10-16 01:01:02.000', '2012-10-16 01:02:13.000')
INSERT INTO #Calls VALUES (24, '2012-10-16 01:01:05.000', '2012-10-16 01:03:16.000')
INSERT INTO #Calls VALUES (24, '2012-10-16 01:01:09.000', '2012-10-16 01:02:42.000')
INSERT INTO #Calls VALUES (24, '2012-10-16 01:01:15.000', '2012-10-16 01:02:48.000')
INSERT INTO #Calls VALUES (24, '2012-10-16 01:01:18.000', '2012-10-16 01:02:14.000')
INSERT INTO #Calls VALUES (24, '2012-10-16 01:01:18.000', '2012-10-16 01:02:06.000')
INSERT INTO #Calls VALUES (24, '2012-10-16 01:01:42.000', '2012-10-16 01:03:16.000')
INSERT INTO #Calls VALUES (24, '2012-10-16 01:01:45.000', '2012-10-16 01:03:04.000')
SELECT TOP 1 DATEADD(SECOND, Number, SessionStartTime) CallTime, COUNT(C.SessionId) NoOfCalls FROM #Calls C
INNER JOIN #Numbers N ON N.Number <= DATEDIFF(SECOND, C.SessionStartTime, C.SessionCloseTime) --Join number of seconds between start and end time
GROUP BY DATEADD(SECOND, Number, SessionStartTime)
ORDER BY NoOfCalls DESC
這個查詢給出結果:在這些時間
11電話:(隨着這些前1一個ofcourse)
2012年10月16日01:01:47.000
2012年10月16日01:01:22.000
2012年10月16日01:01:21.000
2012年10月16日01:01:46.000
2012年10月16日01:01:48.000
2012年10月16日01:01:19.000
2012年10月16日01:01:20.000
這個樣本數據的期望結果是什麼? –
我想要最大呼叫峯值的數量。 – cihata87
...因此,對於此示例數據,結果將爲: – AakashM