Eu estou tentando combinar várias condições dentrouma única instrução MySQLi, que deve calcular o número médio de visitantes mensalmente a partir de um banco de dados de registros de visitantes que registra cada endereço IP em cada página de cada site no servidor.
Isso é um pouco mais difícil, pois requerusando uma função DISTINCT para separar vários endereços IP registrados visitando diferentes páginas do mesmo site, em vez de contá-los como dois ou mais visitantes individuais.
Aqui está uma captura de tela da tabela do banco de dados:
Eu tentei o script a seguir, mas parece não receber nenhuma saída?
$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"];
Os resultados precisam ser agrupados por mês date_last_viewed
para exibir quantos endereços IP distintos visitaram um determinado website_ref
em média a cada mês?
Eu estou esperando que isso faça sentido para alguém explicar onde eu posso estar errado?
Respostas:
0 para resposta № 1Você basicamente tem isso, exceto que você não pode fazer o avg () na mesma linha. Você precisa fazer uma subconsulta e calcular o resultado. Algo como isso deve funcionar:
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;