Função MAX() do MySQL
A função `MAX()` do MySQL é usada para encontrar o valor máximo em um conjunto de valores. É comumente aplicado para recuperar o maior valor de uma coluna em uma tabela de banco de dados.
Uso
A função `MAX()` é frequentemente usada em consultas agregadas para determinar o valor mais alto em uma coluna numérica, de data ou de cadeia de caracteres. Ela pode ser combinada com outras cláusulas SQL, como `GROUP BY`, para que você possa realizar análises de dados mais complexas.
SELECT MAX(column_name)
FROM table_name
[WHERE condition];
Nessa sintaxe, `MAX(column_name)` retorna o maior valor encontrado em `column_name` da `table_name` especificada. Observe que os valores `NULL` são ignorados por padrão ao determinar o valor máximo.
Exemplos
1. Uso básico
SELECT MAX(salary)
FROM employees;
Essa consulta recupera o salário mais alto da tabela `employees`.
2. Usando MAX() com a cláusula WHERE
SELECT MAX(price)
FROM products
WHERE category = 'Electronics';
Este exemplo encontra o preço máximo entre os produtos da categoria "Eletrônicos".
3. MAX() com GROUP BY
SELECT department, MAX(salary)
FROM employees
GROUP BY department;
Aqui, a consulta identifica o salário mais alto em cada departamento da tabela `employees`, usando a cláusula `GROUP BY` para segmentar os dados por departamento.
4. MAX() com HAVING
SELECT department, MAX(salary)
FROM employees
GROUP BY department
HAVING MAX(salary) > 50000;
Essa consulta lista os departamentos em que o salário mais alto é superior a 50.000, demonstrando o uso de `HAVING` para filtragem adicional após `GROUP BY`.
Dicas e práticas recomendadas
- Use com tipos de dados numéricos, de data ou de cadeia de caracteres. Embora seja normalmente aplicado a colunas numéricas ou de datas, `MAX()` também pode ser usado em colunas de strings para encontrar o valor lexicograficamente mais alto.
- Combine com GROUP BY para análise segmentada. Isso ajuda a obter valores máximos em diferentes categorias ou grupos.
- Filtre dados com WHERE para obter resultados específicos. Limite o conjunto de dados usando `WHERE` antes de aplicar `MAX()` para consultas direcionadas.
- Considere a indexação de colunas. Colunas de índice frequentemente usadas com `MAX()` para otimizar o desempenho, especialmente com grandes conjuntos de dados. O ganho de desempenho é significativo quando você envolve colunas indexadas.
- Manuseio de NULL. Lembre-se de que os valores `NULL` são ignorados ao calcular o valor máximo.