簡體   English   中英

MySQL按平均條件和不同條件進行分組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM