我的Widget銷售人員有一個呼叫記錄。記錄客戶記錄中的每次點擊。工作人員每天可以訪問同一個客戶帳戶幾次,因此在一天的不同時間可能會有數十個連續點擊在同一個記錄ID下分組在一起。獲取連續記錄視圖的持續時間
實施例:
recordID userID date_event
33450 321 2013-06-20 16:22:02
33450 321 2013-06-20 16:22:02
33450 321 2013-06-20 16:22:24
33450 321 2013-06-20 16:22:24
22222 321 2013-06-20 16:22:53
22222 321 2013-06-20 16:22:54
12345 321 2013-06-20 16:23:43
12345 321 2013-06-20 16:23:44
12345 321 2013-06-20 16:24:00
12345 321 2013-06-20 16:24:05
12345 321 2013-06-20 16:24:05
12345 321 2013-06-20 18:16:09
12345 321 2013-06-20 18:16:09
33450 321 2013-06-20 18:33:24
33450 321 2013-06-20 18:35:11
33450 321 2013-06-20 18:36:55
12345 321 2013-06-20 19:01:14
98765 321 2013-06-20 19:02:43
在上述數據集,我會6組的訪問權限。
first last duration(seconds)
33450 2013-06-20 16:22:02 2013-06-20 16:22:24 22
22222 2013-06-20 16:22:30 2013-06-20 16:22:54 24
12345 2013-06-20 16:23:43 2013-06-20 18:16:09 6746
33450 2013-06-20 18:33:24 2013-06-20 18:36:55 211
12345 2013-06-20 19:01:14 2013-06-20 19:01:14 0
98765 2013-06-20 19:02:43 2013-06-20 19:02:43 0
持續時間是一個估計,而不是眼睛在記錄上的實際時間。我無法檢測到工作人員何時主動使用此應用程序,或者當他們使用客戶端工具時,在另一個應用程序或網站中查找數據。
表結構是:
CREATE TABLE IF NOT EXISTS `record_log` (
`event_id` int(11) NOT NULL AUTO_INCREMENT,
`userID` int(5) DEFAULT NULL,
`recordID` int(10) DEFAULT NULL,
`date_event` datetime DEFAULT NULL,
PRIMARY KEY (`event_id`),
KEY `userID` (`userID`),
KEY `date_event` (`date_event`),
KEY `recordID` (`recordID`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
什麼是構建一個查詢,以返回第二個數據集的最佳方法?這可以在一個查詢中完成,而不需要使用太多的週期?我可能會在某一天有數千條訪問記錄。
你有一個auto_increment ID?你的記錄如何分組? recordID發生變化時組會發生變化? – fthiella
是的 - auto_increment是「event_id」。記錄將按recordID分組,但捕獲的是,對於給定的時間段,我需要的不僅僅是每個記錄ID的所有持續時間的簡單總和。同一個recordID可以在一天中多次訪問。通常會有一組連續的活動。或者,記錄ID可能只在一天中的某個時間被訪問。我試着在上面的數據中解釋和顯示這一點。 –