Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

borsatti

Estatisticas

Recommended Posts

Vamos la.

 

Seguinte.

 

Eu tenho 1 tabela chamada visitantes com 3 campos. id (int, auto_increment,primary key), data(date), ip(varchar).

 

Então eu preciso saber 3 coisas.

 

1 - Quantos visitantes total por mes e por ano.

 

2 - Quantos visitantes por mes e por ano que tenham ips iguais.

 

3 - Quantos visitantes por mes e por ano que tenham mais de um registro no mesmo ip.

 

 

Vamos as sqls

 

1 -

SELECT COUNT(id) as total,DATE_FORMAT(data,'%m') as mes FROM visits WHERE DATE_FORMAT(data,'%Y') = '2011'  GROUP BY DATE_FORMAT(data,'%m');

edit : Consegui resolver dessa forma acima!!

 

2 - Até o momento não resolvi.

 

3 - Até o momento não resolvi.

 

 

Bom, conforme eu vou resolvendo eu vou postando... Eu sei que da para fazer um while com as consultas e ir filtrando os dados, mas queria obter essas respostas somente com querys.

 

Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Procure pela função EXTRACT()

 

Um exemplo

 

SELECT EXTRACT(YEAR FROM OrderDate) AS OrderYear,
EXTRACT(MONTH FROM OrderDate) AS OrderMonth,
EXTRACT(DAY FROM OrderDate) AS OrderDay,
FROM Orders
WHERE OrderId=1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom acho que resolvi... ta ai

 

 

Eu tenho 1 tabela chamada visitantes com 3 campos. id (int, auto_increment,primary key), data(date), ip(varchar).

 

Então eu preciso saber 3 coisas.

 

1 - Quantos visitantes total por mes e por ano.

 

2 - Quantos visitantes por mes e por ano que somente 1 ip naquele mes e ano.

( No caso eu quero saber quantos ips que entraram no site e não voltaram mais)

 

3 - Quantos visitantes por mes e por ano que tenham mais de um registro no mesmo ip.

( Nesse caso quero saber qnts ips entraram e voltaram no site naquele mes e ano)

 

 

Vamos as sqls

 

1 -

SELECT COUNT(id) as total,DATE_FORMAT(data,'%m') as mes FROM visits WHERE DATE_FORMAT(data,'%Y') = '2011'  GROUP BY DATE_FORMAT(data,'%m');

edit : Consegui resolver dessa forma acima!!

 

2 -

SELECT DISTINCT (ip) as ipd,COUNT(id) AS total, DATE_FORMAT( data,'%m') AS mes FROM visits WHERE DATE_FORMAT( data,'%Y') =  '2011' GROUP BY DATE_FORMAT( data,'%m')  HAVING COUNT(ipd) = 1

 

 

3 -

SELECT DISTINCT (ip) as ipd,COUNT(id) AS total, DATE_FORMAT( data,'%m') AS mes FROM visits WHERE DATE_FORMAT( data,'%Y') =  '{$year}' GROUP BY DATE_FORMAT( data,'%m')  HAVING COUNT(ipd) > 1

 

 

Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.