Ederson dos Santos Postado Junho 7, 2011 Denunciar Share Postado Junho 7, 2011 Olá amigos, sou novo no fórum e preciso tirar uma dúvida.tenho armazenado em uma tabela data e hora de todos os acessos ao site neste formato (2011-05-27 12:30:07). Preciso fazer um select retornando as horas de maior movimento.Agradeço a quem puder me dar esta dica.Att Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Junho 7, 2011 Denunciar Share Postado Junho 7, 2011 Movendo PHP » MySQL. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Junho 7, 2011 Denunciar Share Postado Junho 7, 2011 Olá amigos, sou novo no fórum e preciso tirar uma dúvida.tenho armazenado em uma tabela data e hora de todos os acessos ao site neste formato (2011-05-27 12:30:07). Preciso fazer um select retornando as horas de maior movimento.Agradeço a quem puder me dar esta dica.AttSELECT DISTINCT TIME(datatipotimestamp) AS HORA FROM minhatabela ORDER BY HORA DESC Link para o comentário Compartilhar em outros sites More sharing options...
0 Ederson dos Santos Postado Junho 7, 2011 Autor Denunciar Share Postado Junho 7, 2011 Olá amigos, sou novo no fórum e preciso tirar uma dúvida.tenho armazenado em uma tabela data e hora de todos os acessos ao site neste formato (2011-05-27 12:30:07). Preciso fazer um select retornando as horas de maior movimento.Agradeço a quem puder me dar esta dica.AttSELECT DISTINCT TIME(datatipotimestamp) AS HORA FROM minhatabela ORDER BY HORA DESC Caro Denis, agradeço a resposta mas acho que me espressei mal e talvez tenha criado a tabela de forma errada pois ela é data_time, mas precisaria que me retornase algo como: 13hs 54 acessos, tipo me retornar quantos acessos dentro de uma hora. fiz um codigo aqui que tenho até vergonha de mostrar é em php mas ai se entende bem o que preciso. assim ele me retorna 24 resultados com o numero de acessos em cada hora. <? require_once('../Connections/conn.php'); mysql_select_db($database_conn, $conn); $query_acessos = "SELECT * FROM acessos"; $acessos = mysql_query($query_acessos, $conn) or die(mysql_error()); $row_acessos = mysql_fetch_assoc($acessos); $totalRows_acessos = mysql_num_rows($acessos); $a=0;$b=0;$c=0;$d=0;$e=0;$f=0;$g=0;$h=0;$i=0;$j=0;$l=0;$m=0;$n=0;$o=0;$p=0;$q=0;$r=0;$s=0;$t=0;$u=0;$v=0;$x=0;$y=0;$z=0; do { list($data,$hora)=explode(" ",$row_acessos['data_hora']); list($hora)=explode(":",$hora); switch($hora) { case"00": $a++; break; case"01": $b++; break; case"02": $c++; break; case"03": $d++; break; case"04": $e++; break; case"05": $f++; break; case"06": $g++; break; case"07": $h++; break; case"08": $i++; break; case"09": $j++; break; case"10": $l++; break; case"11": $m++; break; case"12": $n++; break; case"13": $o++; break; case"14": $p++; break; case"15": $q++; break; case"16": $r++; break; case"17": $s++; break; case"18": $t++; break; case"19": $u++; break; case"20": $v++; break; case"21": $x++; break; case"22": $y++; break; case"23": $z++; break; } } while ($row_acessos = mysql_fetch_assoc($acessos)); echo "00hs" . " - " . $a . "<br />"; echo "01hs" . " - " . $b . "<br />"; echo "02hs" . " - " . $c . "<br />"; echo "03hs" . " - " . $d . "<br />"; echo "04hs" . " - " . $e . "<br />"; echo "05hs" . " - " . $f . "<br />"; echo "06hs" . " - " . $g . "<br />"; echo "07hs" . " - " . $h . "<br />"; echo "08hs" . " - " . $i . "<br />"; echo "09hs" . " - " . $j . "<br />"; echo "10hs" . " - " . $l . "<br />"; echo "11hs" . " - " . $m . "<br />"; echo "12hs" . " - " . $n . "<br />"; echo "13hs" . " - " . $o . "<br />"; echo "14hs" . " - " . $p . "<br />"; echo "15hs" . " - " . $q . "<br />"; echo "16hs" . " - " . $r . "<br />"; echo "17hs" . " - " . $s . "<br />"; echo "18hs" . " - " . $t . "<br />"; echo "19hs" . " - " . $u . "<br />"; echo "20hs" . " - " . $v . "<br />"; echo "21hs" . " - " . $x . "<br />"; echo "22hs" . " - " . $y . "<br />"; echo "23hs" . " - " . $z . "<br />"; ?> Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Junho 8, 2011 Denunciar Share Postado Junho 8, 2011 Caro Denis, agradeço a resposta mas acho que me espressei mal e talvez tenha criado a tabela de forma errada pois ela é data_time, mas precisaria que me retornase algo como: 13hs 54 acessos, tipo me retornar quantos acessos dentro de uma hora.fiz um codigo aqui que tenho até vergonha de mostrar é em php mas ai se entende bem o que preciso. assim ele me retorna 24 resultados com o numero de acessos em cada hora....OK Entendi.Faça assim:SELECT HOUR(datatipotimestamp) HORA, COUNT(HOUR(datatipotimestamp)) AS QT_HORA FROM minhatabela Link para o comentário Compartilhar em outros sites More sharing options...
0 Ederson dos Santos Postado Junho 8, 2011 Autor Denunciar Share Postado Junho 8, 2011 Caro Denis, agradeço a resposta mas acho que me espressei mal e talvez tenha criado a tabela de forma errada pois ela é data_time, mas precisaria que me retornase algo como: 13hs 54 acessos, tipo me retornar quantos acessos dentro de uma hora.fiz um codigo aqui que tenho até vergonha de mostrar é em php mas ai se entende bem o que preciso. assim ele me retorna 24 resultados com o numero de acessos em cada hora....OK Entendi.Faça assim:SELECT HOUR(datatipotimestamp) HORA, COUNT(HOUR(datatipotimestamp)) AS QT_HORA FROM minhatabela Deu este erro: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause O select ficou assim: SELECT HOUR(data_hora) HORA, COUNT(HOUR(data_hora)) AS QT_HORA FROM acessosTentei criar outra tabela com o campo timestamp achei que talvez pudese ser isso, mas não deu tb. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Junho 8, 2011 Denunciar Share Postado Junho 8, 2011 ...Deu este erro:Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clauseO select ficou assim:SELECT HOUR(data_hora) HORA, COUNT(HOUR(data_hora)) AS QT_HORA FROM acessos Tentei criar outra tabela com o campo timestamp achei que talvez pudese ser isso, mas não deu tb. Desculpe, esqueci de adicionar o GROUP BY: Tenta de novo: SELECT HOUR(datatipotimestamp) HORA, COUNT(HOUR(datatipotimestamp)) AS QT_HORA FROM minhatabela GROUP BY HORA Link para o comentário Compartilhar em outros sites More sharing options...
0 Ederson dos Santos Postado Junho 8, 2011 Autor Denunciar Share Postado Junho 8, 2011 (editado) Grande Denis, pesquisei sobre o erro e fiz desta forma:SELECT HOUR(data_hora) HORA, COUNT(*) AS QT_HORA FROM acessos GROUP BY HOUR(data_hora) Assin funcionou perfeitamente, obrigado pela força. Agora o codigo ficou em duas linhas. Mais uma vez obrigado. Att ... Deu este erro: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause O select ficou assim: SELECT HOUR(data_hora) HORA, COUNT(HOUR(data_hora)) AS QT_HORA FROM acessos Tentei criar outra tabela com o campo timestamp achei que talvez pudese ser isso, mas não deu tb. Desculpe, esqueci de adicionar o GROUP BY: Tenta de novo: SELECT HOUR(datatipotimestamp) HORA, COUNT(HOUR(datatipotimestamp)) AS QT_HORA FROM minhatabela GROUP BY HORAheheh respondemos juntos vlw.Funcionou certinho, não sei colocar resolvido no tópico. Editado Junho 8, 2011 por Ederson dos Santos Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Ederson dos Santos
Olá amigos, sou novo no fórum e preciso tirar uma dúvida.
tenho armazenado em uma tabela data e hora de todos os acessos ao site neste formato (2011-05-27 12:30:07). Preciso fazer um select retornando as horas de maior movimento.
Agradeço a quem puder me dar esta dica.
Att
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados