borsatti 2 Denunciar post Postado Setembro 2, 2011 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
Leozitho 81 Denunciar post Postado Setembro 3, 2011 Como a sua dúvida é sobre SQL e não PHP, sugiro postar no fórum Modelagem de Dados, lá tem profissionais mais experientes neste assunto. Algum moderador poderia mover pra lá também. :) Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Setembro 3, 2011 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
borsatti 2 Denunciar post Postado Setembro 3, 2011 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