
Log Parser工具现在已有几个月了.这样做是为了能够编写
SSRS根据此日志数据进行报告.
我正在研究的报告之一应该是确定的数量
访问每个唯一的IP地址.访问被定义为IP地址命中
网站上的一个页面,然后在一个小时内再发出4个请求
其他.所有5个请求都在一次访问网站内.后来就是这样
晚上,相同的IP地址访问该网站,除了现在是3小时后,所以
我们将这个新活动计入与新访问相同的IP中.这是一个样本
数据:
IPAddress,RequestDateTime,Uristem10.1.1.100,2010-10-15 13:30:30,/10.1.1.100,2010-10-15 13:30:31,/style.CSS10.1.1.100,/script.Js10.1.1.100,2010-10-15 13:30:32,/funny.gif10.1.1.100,2010-10-15 13:30:33,/picture.jpg10.1.1.101,2010-10-15 13:40:50,/page2.HTML10.1.1.101,2010-10-15 13:40:51,/style.CSS10.1.1.102,2010-10-15 14:10:20,/page4.HTML10.1.1.102,2010-10-15 14:10:21,2010-10-15 16:55:10,2010-10-15 16:55:11,2010-10-15 16:55:12,2010-10-15 16:55:13,/picture.jpg
通过查看上面的数据,我可以很容易地看出10.1.1.100 IP
地址已经访问过该网站两次,每次访问都有5次点击.但是,我
不知道如何在sql代码中表达它.是否有一种简单的分组方式
并按IP地址计算这些日期范围?
我知道可以使用诸如此类工具捕获此信息
AWStats,但我没有能够安装Perl的奢侈品
我们使用的系统.
DECLARE @threshold INT; SET @threshold = 4; --this number should not include the initial visitDECLARE @lookbackdays int; SET @lookbackdays = 300; ;WITH postCTE as ( SELECT ipaddress,uristem,requestdatetime,RowNumber = ROW_NUMBER() OVER (ORDER BY ipaddress,requestdatetime ASC) FROM Foo --put your table name hereWHERE requestdatetime > GETDATE() - @lookbackdays ) --select * from postCTESELECT p1.ipaddress AS [ipaddress],p2.RowNumber - p1.RowNumber +1 AS [Requests],p1.requestdatetime AS [DateStart]FROM postCTE p1 INNER JOIN postCTE p2 ON p1.ipaddress = p2.ipaddress AND p1.Rownumber = p2.RowNumber - (@threshold ) WHERE DATEDIFF(minute,p1.requestdatetime,p2.requestdatetime) <= 60
我在sql 2008上的测试输出是
ipaddress Requests DateStart10.1.1.100 5 2010-10-15 13:30:30.00010.1.1.100 5 2010-10-15 16:55:10.000总结
以上是内存溢出为你收集整理的从Web服务器日志使用数据时SQL Server日期范围问题全部内容,希望文章能够帮你解决从Web服务器日志使用数据时SQL Server日期范围问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)