我正在尝试整理一个 SQL 查询来收集过去一周内查看最多的 10 条新闻。我还需要它来过滤查看过相同新闻项目的重复 IP 地址。
每次用户进入页面时,都会获取用户的浏览器查询字符串。
这是数据库设置的示例:
datetime | ipaddress | querystring
-----------------------------------------
9/12/2011 | 65.65.65.651 | newsid=3512
9/12/2011 | 65.65.65.658 | newsid=3512
10/12/2011 | 65.65.65.653 | newsid=3514
11/12/2011 | 65.65.65.656 | newsid=3515
11/12/2011 | 65.65.65.651 | newsid=3515
13/12/2011 | 65.65.65.651 | newsid=3516
14/12/2011 | 65.65.65.650 | newsid=3516
14/12/2011 | 65.65.65.650 | newsid=3516
我失败的尝试:
SELECT DISTINCT TOP 10 ipaddress, querystring, Count(*) AS thecount
FROM [thedb].[dbo].[tblwebstats]
WHERE querystring LIKE '%newsid=%' AND datetime > (1 week ago)
GROUP BY querystring, ipaddress
ORDER BY Count(*) DESC
请帮帮我:)