Queria fazer uma análise do total de posts acumulados pelo número de visitas ao blog. Para isso precisei fazer uma query no banco de dados do WordPress, o MySQL.

Para ilustrar o tipo de relatório que eu queria, ele teria as seguintes colunas e dados:

(data) (total de posts no blog)
1/1/2007 100
2/1/2007 105
3/1/2007 110

Depois disso eu relacionaria através das estatísticas geradas no Sitemeter para pageviews e cruzaria os dados:


(data) (total de posts no blog) (pageviews)
1/1/2007 100 682
2/1/2007 105 703
3/1/2007 110 550

É claro que é um estudo meu para ver se existe relação entre os acessos que o Google encaminha ao meu site e a quantidade de conteúdo que o site tem. Algo nerd de se fazer nas horas vagas, hehehe.

Ainda tenho poucos artigos no site para provar alguma coisa mas é um estudo interessante.

Existem duas maneiras que encontrei para construir uma query com totais acumulados no MySQL:

1- Através de subquery. (somente na versão 5 do MySQL)
2- Com ajuda de uma tabela auxiliar.

No meu caso a versão é a 4. Então montei este script que me dá a data e a quantidade de posts acumulados.


--
-- Temporary table:
--
--
CREATE TEMPORARY TABLE tmp(
data date,
count SMALLINT UNSIGNED
);
--
INSERT INTO tmp
SELECT
DATE_FORMAT(a.post_date,'%y/%m/%d') data,
COUNT(*) AS count
FROM wp_sos_posts a
where post_parent=0
GROUP BY DATE_FORMAT(a.post_date,'%y/%m/%d')
ORDER BY DATE_FORMAT(a.post_date,'%y/%m/%d')
;
--
-- SELECT * FROM tmp;
--
SET @cumulative = 0;
--
SELECT data, count, @cumulative:=@cumulative + count AS cumulative FROM tmp;
--
DROP TABLE tmp;

[tags]mysql[/tags] [tags]wordpress[/tags] [tags]sql[/tags]