几天前我发现了这个问题,找不到最佳解决方案。我们有一个下表结构,用于存储访问特定网站的用户的一些基本Web流量日志。
Table name: [tblWebtraffic]
Columns: Id,IPAddress,PageName,Date
我想要一个查询(即单个Select语句)来查询。总访问次数和唯一身份访问者总数(根据IP地址)以及过去60天内访问过的唯一身份页数。
PS:这是我在本网站的第一个问题,如果问题中缺少某些细节,请原谅我。 :)
编辑:我正在使用SQL Server数据库。
答案 0 :(得分:0)
SELECT pageName, count(*) AS pageHits FROM tblWebtraffic GROUP BY pageName
会给你每页点击次数,稍作修改会给出独特的页面点击次数
SELECT pageName, count(DISTINCT ipAddress) AS uniquePageHits FROM tblWebtraffic GROUP BY pageName
当然,通过页面名称删除组将为您提供整个网站点击
SELECT count(*) AS siteHits FROM tblWebtraffic
SELECT count(DISTINCT ipAddress) uniqueSiteHits FROM tblWebtraffic
PS:我第一次尝试回答,所以如果有任何遗漏请告诉我:)
编辑:这些将适用于MS SQLServer Transact SQL .. MySQL我不太熟悉,但我只是尝试了SELECT count(Distinct fieldname)并且它工作了 edit2:感谢编辑 - 代码格式看起来很棒
edit3:回答问题:)
SELECT count(*) AS siteHits, count(DISTINCT ipAddress) AS uniqueSiteHits, count(DISTINCT pageName) AS uniquePages FROM tblWebtraffic WHERE DATEDIFF(d, [Date], getDate()) <= 60