Problema:
Você gostaria de encontrar o valor máximo de uma coluna numérica.
Exemplo:
Nosso banco de dados tem uma tabela chamada
product com dados nas seguintes colunas:id , name , year , e items . | id | nome | ano | itens |
|---|---|---|---|
| 1 | rolinho de pão | 2018 | 345 |
| 2 | chocolate | 2017 | 123 |
| 3 | manteiga | 2019 | 34 |
| 4 | rolinho de pão | 2019 | 456 |
| 5 | manteiga | 2018 | 56 |
| 6 | manteiga | 2017 | 78 |
| 7 | chocolate | 2019 | 87 |
| 8 | chocolate | 2018 | 76 |
Vamos encontrar o número máximo de itens vendidos em todos os anos.
Solução:
SELECT MAX(items) as max_items FROM product;
Aqui está o resultado:
| max_items |
|---|
| 456 |
Discussão:
Para encontrar o valor máximo de uma coluna, use o
MAX() função agregada; ele recebe como argumento o nome da coluna para a qual você deseja encontrar o valor máximo. Se você não especificou nenhuma outra coluna no SELECT cláusula, o máximo será calculado para todos os registros da tabela. Em nosso exemplo, a consulta retorna o número máximo entre todos os itens. Claro, como é uma função agregada,
MAX() também pode ser usado com grupos. Por exemplo, se quisermos ver o número máximo de itens vendidos em cada ano, podemos escrever esta consulta:SELECT year, MAX(items) AS max_items FROM product GROUP BY year;
O máximo é calculado para cada grupo:
| ano | max_items |
|---|---|
| 2018 | 345 |
| 2017 | 123 |
| 2019 | 456 |