我有一个包含三列的MySQL表:Page,IP和Date。我正在尝试编写一个SQL行,在过去24小时内按页面名称列出唯一视图。我试过这个:
SELECT Page, COUNT(DISTINCT IP) as views FROM `hits` WHERE DATE >= DATE_SUB(NOW(), INTERVAL 1 DAY) AND IP <> 'unknown' GROUP BY Page ORDER BY views DESC;
我确实得到了分组的页面名称。但是,它们都有1个视图。
另外,我怎样才能列出浏览次数超过1的网页?我尝试过WHERE视图&gt; 1但它没有用。
答案 0 :(得分:0)
您的日期检查条件错误。您正在检查日期大于或等于一天的条目。
应为DATE <= DATE_SUB(NOW(), INTERVAL 1 DAY)
您的查询应如下所示
SELECT Page, COUNT(DISTINCT IP) as views FROM `hits` WHERE DATE <= DATE_SUB(NOW(), INTERVAL 1 DAY) AND IP <> 'unknown' GROUP BY Page ORDER BY views DESC;`