我正在尝试在单个MySQLi语句中组合多个条件,该语句应该从访问者日志数据库中计算每月的平均访问者数量,该数据库将每个IP地址记录到服务器上每个网站的每个页面。
这有点困难,因为它需要使用DISTINCT函数来分隔记录访问同一网站的不同页面的多个IP地址,而不是将其计为2个或更多个人访问者。
我尝试过以下脚本,但似乎没有输出?
$getAVERVISITORS = mysqli_fetch_assoc(mysqli_query($conn, "SELECT AVG(count(distinct ip_address)) as average_monthly_visitors FROM all_website_stats WHERE website_ref = '$account_ref' GROUP BY MONTH(date_last_viewed)"));
$getAVERVISITORS = $getAVERVISITORS['average_monthly_visitors'];
结果需要在date_last_viewed
内按月分组,以显示每月平均访问特定website_ref
的不同IP地址数量?
我希望这足以让有人解释我可能会出错的地方?
答案 0 :(得分:0)
你基本上拥有它,除了你不能在同一行中做avg()。你需要做一个子查询然后平均结果。这样的事情应该有效:
SELECT AVG(counter) AS average_monthly_visitors from (SELECT count(distinct(ip_address)) as counter FROM all_website_stats WHERE website_ref = '$account_ref' GROUP BY MONTH(date_last_viewed)) Temp;