我有几个表收集数据供内部使用,但我想将所有数据写入其他表,我可以从中轻松查询统计数据,无需连接,分组和其他混乱。此选择插入查询将每10分钟作为维护计划运行。
我有3个数据表
Visitors (id int, siteID int, date smalldatetime, isRead bit, isActive bit)
VisitorLastLocation (id int, visitorID int, siteID int, durationInSeconds int)
VisitorLocations(visitorLastLocationID int)
每当唯一身份访问者访问某个网站时,新项目就会添加到访问者表格中,同样适用于VisitorLastLocation。下一次访问现有访问者将以前的位置添加到VisitorLocations并更新VisitorLastLocation表。
我需要每10分钟填一次表。
VisitorStatistics(id int, siteID int, visits int, pageViews int, isReadNumber int, isActiveNumber int, durationSum int, date smalldatetime)
所以,如果你让我说得对,我需要按原始日期(即2/2/11 13:30而不是2/2/11 13:31)和siteID分组。
你如何建议解决这个问题,完整的解决方案将非常有用......
感谢
答案 0 :(得分:1)
根据您的描述,您缺少的是将DATETIME舍入到较低30分钟间隔的代码。 DATEDIFF和DATEADD应该在这里帮助你......
GROUP BY
DATEADD(MINUTE, DATEDIFF(MINUTE, 0, [date]) - (DATEDIFF(MINUTE, 0, [date]) % 30), 0),
siteID