[英]MySQL group by multiple with average and distinct conditions
我試圖在一個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地址?
我希望這足以讓有人解釋我可能會出錯的地方?
除了不能在同一行中執行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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.