Ajuda em criar consulta/query mysql - Programação e Desenvolvimento - Diolinux Plus
Ajuda em criar consulta/query mysql
marciordj Junho 11, 2019, 5:27pm #1
Pessoal, eu to com um problema aqui …
Eu preciso criar uma consulta no mysql que devolva o dia que mais teve "players" online e a quantidade de players online …
Eu usei esse comando select max(data), count(*) from players group by data;
Ele até me devolveu os dados que eu queria, porém ele apareceram todos os dias e as pessoas que ficaram online e eu precisava especificamente do dia com maior numero de players online e a quantidade.
Eu tentei esse comando: select max(data), count(*) from players; ele me retorna o dia com maior numero de players porém no count, ele me devolve o total de players de todos os dias, e nao só do dia especifico.
diogocesar Junho 11, 2019, 5:41pm #2
SELECT data, count(nome_players) => os dados que você quer, no caso a data e a contagem de players
FROM players => tabela que você quer
ORDER BY nome_players, data => ordem dos dados (titulos) que você quer visualizar
DESC (ou ASC) => ordem dos dados, do maior para o menor, ou menor para o maior (descendente ou ascendente)
Vê se isso te dá uma luz…
marciordj Junho 12, 2019, 2:35am #3
Então @diogocesar, desse jeito vai dar o mesmo resultado que deu na outra, mas "ordenado", eu precisava que o resultado fosse somente o dia e a contagem de acessos … Mas mesmo assim muito obrigado pela sua ajuda !!
diogocesar Junho 12, 2019, 3:53am #4
Então @marciordj, mas a ideia não é esta? Pegar o dia em que teve a maior contagem de players? Acredito que ele vai retornar no primeiro registro: qual dia e a maior quantidade que já teve de players, depois em baixo no segundo: o dia com a segunda maior quantidade de players, e assim por diante… Daí você joga isso dentro de um array (se for o caso) e trata isso… Tipo utiliza a primeira posição do array, a posição 0, vai ter exatamente o que você quer, a data e a quantidade de total de players da primeira linha de registro, posição 1, vai ter o segundo registro (a data + a segunda maior quantidade de players), e assim por diante…
diogocesar Setembro 14, 2019, 6:58pm #5
Se quer somente a primeira linha, use:
SELECT data, count(nome_players)
ORDER BY nome_players, data
DESC (ou ASC)
Use o "limit 1" ao final para retornar apenas o que você quer (uma linha só, no caso a primeira linha de registro com a data e a maior quantidade de players)
marciordj Junho 12, 2019, 1:49pm #6
Essa deu certo Diogo, muito obrigado, salvou minha vida ! hahaha
Uma outra coisa, aproveitando o post …
Tem como eu exportar os comandos que eu usei pra um arquivo pdf ou algo do tipo ? Por exemplo, eu usei esse comando que vc me passou e eu tenho que mandar essa query para alguém, tem como ue exportar ela ?
diogocesar Junho 13, 2019, 3:53am #7
Se você estiver usando o phpmyadmin tem sim, tem as opções de exportação e importação nele.
Gera um arquivo de extensão .sql do banco de dados, mas esse arquivo nada mais é do como se fosse um arquivo .txt quaisquer que você pode abrir no próprio bloco de notas (ou notepad++, ou sublime, etc…) e visualizar as querys, daí é só pegar e jogar em um word/.doc da vida e salvar/exportar no formato .pdf