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 MIN(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 baixo?
Solução: o valor dos imóveis estão armazenados na coluna valor, logo devemos calcular o valor mais baixo a partir desta coluna.
Para calcularmos o valor mínimo, executamos a sentença abaixo:
SELECT MIN(valor) FROM tb_imoveis;
Após a execução, teremos o imóvel com o valor mais baixo. Conforme podemos visualizar na imagem a seguir:
O nome da coluna aparece como "min", mas vamos supor que precisamos que seja exibido "imovel_valor_minimo".
Podemos modificar o nome desta coluna, ou seja, criar um alias (apelido). Colocamos o alias depois do "AS"
SELECT MIN(valor) AS imovel_valor_minimo FROM tb_imoveis;
Após a execução, o nome da coluna será exibido como "imovel_valor_minimo".
2º Exemplo
Cenário: Uma equipe de três atletas treina uma série de corridas. Queremos saber qual foi o melhor treino para cada atleta, ou seja qual corrida levou menos tempo.
Neste exemplo, utilizaremos a tabela "tb_treino".
tb_treino |
Solução: já que procuramos o menor tempo por atleta, vamos agrupar os atletas que estão armazenados na coluna "atleta_id". Para agrupar, utilizaremos o " GROUP BY".
Para calcularmos o menor tempo por atleta, executamos a sentença abaixo:
SELECT atleta_id, MIN(tempo) AS melhor_tempo
FROM tb_treino
GROUP BY atleta_id;
Após a execução, teremos o melhor 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:
MIN(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 melhor treino? Qual a data que o treino ocorreu?
Neste exemplo, utilizaremos a tabela "tb_treino".
Solução: também podemos utilizar a função "MIN" para filtrar um registro, desde que a função "MIN" pertença a uma subquery.
Veja a subquery destacada, em azul, na sentença abaixo:
SELECT
atleta_id,
data,
tempo AS melhor_tempo
FROM tb_treino
WHERE tempo =
(
SELECT MIN(tempo)
FROM tb_treino
)
Após a execução da sentença, teremos o resultado exibido na imagem abaixo:
A função MIN não funciona no WHERE sem a subquery.
WHERE tempo = MIN(tempo)
Deixe o seu comentário ou sugestão.
Gostou? Siga no Google + ou Facebook.
Nenhum comentário:
Postar um comentário