Serão descritos 3 exemplos de utilização desta função.
Caso tenha interesse, faça o download ou veja os scripts no github.
SINTAXE
SELECT MAX(nome_da_coluna) FROM nome_da_tabela;
1º Exemplo
Neste exemplo, utilizaremos a tabela "tb_imoveis". Veja a imagem abaixo:
tb_imoveis |
Cenário: qual o imóvel que possui o valor mais alto?
Solução: o valor dos imóveis estão armazenados na coluna valor, logo devemos calcular o valor mais alto a partir desta coluna.
Para calcularmos o valor máximo, executamos a sentença abaixo:
SELECT MAX(valor) FROM tb_imoveis;
Após a execução, teremos o imóvel com o valor mais alto. Conforme podemos visualizar na imagem abaixo:
O nome da coluna aparece como "max", mas vamos supor que precisamos que seja exibido "imovel_valor_maximo".
Podemos modificar o nome desta coluna, ou seja, criar um alias (apelido). Colocamos o alias depois do "AS"
SELECT MAX(valor) AS imovel_valor_maximo FROM tb_imoveis;
Após a execução, o nome da coluna será exibido como "imovel_valor_maximo".
2º Exemplo
Cenário: Uma equipe de três atletas treina uma série de corridas. Queremos saber qual foi o pior treino para cada atleta, ou seja qual corrida levou maior tempo.
Neste exemplo, utilizaremos a tabela "tb_treino".
tb_treino |
Solução: já que procuramos o maior tempo por atleta, vamos agrupar os atletas que estão armazenados na coluna "atleta_id". Para agrupar, utilizaremos o " GROUP BY".
Para calcularmos o maior tempo por atleta, executamos a sentença abaixo:
SELECT atleta_id, MAX(tempo) AS pior_tempo
FROM tb_treino
GROUP BY atleta_id;
Após a execução, teremos o pior tempo para cada atleta. Conforme podemos visualizar na imagem abaixo:
Para ordenar a identificação dos atleta em ordem crescente, ou seja, do valor menor para o maior, deve-se usar "ORDER BY" seguido do nome da coluna, neste caso, a coluna 'atleta_id' será ordenada .
Para ordenar as identificações, utilizamos a sentença abaixo:
MAX(tempo) AS pior_tempo
FROM tb_treino
GROUP BY atleta_id
ORDER BY atleta_id;
Após a execução, teremos as identificações dos atletas em ordem crescente. Conforme podemos visualizar na imagem abaixo:
3º Exemplo
Cenário: Qual o atleta que obteve o pior treino? Qual a data que o treino ocorreu?
Neste exemplo, utilizaremos a tabela "tb_treino".
Solução: também podemos utilizar a função "MAX" para filtrar um registro, desde que a função "MAX" pertença a uma subquery.
Veja a subquery destacada, em azul, na sentença abaixo:
SELECT
atleta_id,
data,
tempo AS pior_tempo
FROM tb_treino
WHERE tempo =
(
SELECT MAX(tempo)
FROM tb_treino
)
Após a execução da sentença, teremos o resultado exibido na imagem abaixo:
A função MAX não funciona no WHERE sem a subquery.
WHERE tempo = MAX(tempo)
Deixe o seu comentário ou sugestão.
Gostou? Siga no Google + ou Facebook.
Nenhum comentário:
Postar um comentário