Estava aqui testando o código da aula e percebi uma falha que não consegui entender o porque dos resultados, pelo que entendi usando o "ORDER BY coluna escolhida DESC;" deveria devolver pra gente o resultado em ordem do maior pro menor certo? Entao teria que me retornar por exemplo os que deram 7, depois 6, depois 5.....1 certo?
SELECT cliente_id, AVG(DATEDIFF(data_fim, data_inicio)) AS media_dias_estadia
FROM alugueis
GROUP BY cliente_id
ORDER BY media_dias_estadia DESC;
fiz o codigo exatamente igual o da aula e só me retornou media 7... nao teve um com nota menor... até aí eu imaginei que todos ali poderiam ter a media de 7 dias... por conta pesquisei como faria pra ser em ordem ascendente, ou seja, do menor para o maior e descobri que para ordem ascendente seria trocar o DESC por ASC.
SELECT cliente_id, AVG(DATEDIFF(data_fim, data_inicio)) AS media_dias_estadia
FROM alugueis
GROUP BY cliente_id
ORDER BY media_dias_estadia ASC;
Porém deveria me retornar o mesmo valor de DESC ja que todos tinham a média de 7 dias, porém ele me retornou todos com a media de 1 dia!! ??
Procurei pra ver se iria aumentando e agora ao inves de todos 7, estava todos com 1.... alguem pode me explicar o motivo desse resultado... agora nao sei se esse comando "AVG(DATEDIFF "realmente funciona... pq deu dois resultados diferentes mudando apenas a ordem que eu queria que ele exibisse o resultado...
EDIT: Eu testei na tabela do exercicio anterior, (no exemplo da tabela alugueis) e a impressao que me deu é que embora eu nao tenha colocado nenhum limite no resultado, ele nao carrega o resultado tabela inteira... pois no exemplo que testei aqui, quando coloco em ordem descendente, ele aparece que o maior valor lá é 7000,00 e se vc descer ate o final, o menor apresentado ali é 4697,00, mas se inverto para ascendente, ele começa 102,00 e qndo vou até o ultimo resultado ali é 486,00 (e deveria ser lá os 7000,00)
SELECT cliente_id, AVG(preco_total) AS ticket_medio
FROM alugueis
GROUP BY cliente_id
ORDER BY ticket_medio DESC;
SELECT cliente_id, AVG(preco_total) AS ticket_medio
FROM alugueis
GROUP BY cliente_id
ORDER BY ticket_medio ASC;
alguem sabe o porque disso acontecer? eu nao estou usando LIMIT como podem observar nos codigos acima...