PostgreSQL MAX
A função `MAX` no PostgreSQL é uma função matemática utilizada para encontrar o maior valor em um conjunto de valores. É comumente utilizado em consultas SQL para obter o valor máximo de uma coluna de números ou datas.
Uso
A função `MAX` é usada quando você precisa identificar o valor mais alto em uma coluna, como encontrar o maior salário, idade ou data. É frequentemente usado em consultas `SELECT` juntamente com `GROUP BY` para resultados agregados.
SELECT MAX(column_name)
FROM table_name
[WHERE condition];
Nessa sintaxe, `MAX(nome_da_coluna)` calcula o maior valor na coluna especificada.
Exemplos
1. Uso básico
SELECT MAX(price)
FROM products;
Essa consulta recupera o preço mais alto da tabela `produtos`.
2. Usando MAX com a cláusula WHERE
SELECT MAX(age)
FROM users
WHERE active = TRUE;
Aqui, a consulta encontra a idade máxima somente entre os usuários ativos, adicionando uma condição de filtro ao cálculo.
3. MAX com GROUP BY
SELECT department, MAX(salary)
FROM employees
GROUP BY department;
Este exemplo calcula o salário mais alto em cada departamento, usando a cláusula `GROUP BY` para agrupar os resultados por departamento.
4. Manipulação de valores NULL
SELECT MAX(score)
FROM results;
Essa consulta encontra a pontuação máxima na tabela `results`, ignorando quaisquer valores `NULL` presentes, pois o `MAX` ignora inerentemente os valores `NULL`.
5. Usando MAX em uma subconsulta
SELECT name, salary
FROM employees
WHERE salary = (SELECT MAX(salary) FROM employees);
Essa consulta recupera o nome e o salário do(s) funcionário(s) com o salário mais alto usando uma subconsulta.
Dicas e práticas recomendadas
- Use com WHERE para obter resultados específicos. Aplique uma cláusula `WHERE` para filtrar os dados antes de aplicar `MAX` para obter resultados mais precisos.
- Combine com GROUP BY para obter dados agrupados. Use `MAX` com `GROUP BY` para encontrar valores máximos em diferentes categorias ou grupos.
- Considere os valores NULL. Lembre-se de que o `MAX` ignora os valores `NULL`, portanto, certifique-se de que esse comportamento esteja alinhado aos requisitos de dados que você tem.
- Otimize o desempenho. Use índices nas colunas envolvidas nos cálculos de `MAX` para melhorar o desempenho da consulta, reduzindo o tempo de varredura, especialmente em grandes conjuntos de dados.
- Explorar consultas complexas. Considere o uso de `MAX` em subconsultas ou em conjunto com outras funções de agregação para tarefas de análise de dados mais abrangentes.