No MariaDB,
MAX()
é uma função agregada que retorna o valor máximo em uma determinada expressão. Sintaxe
A sintaxe fica assim:
MAX([DISTINCT] expr)
Dados de amostra
Suponha que temos uma tabela com os seguintes dados:
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products;
Resultado:
+----------+---------------------------------+--------------+ | VendorId | ProductName | ProductPrice | +----------+---------------------------------+--------------+ | 1001 | Left handed screwdriver | 25.99 | | 1001 | Right handed screwdriver | 25.99 | | 1001 | Long Weight (blue) | 14.75 | | 1001 | Long Weight (green) | 11.99 | | 1002 | Sledge Hammer | 33.49 | | 1003 | Chainsaw | 245.00 | | 1003 | Straw Dog Box | 55.99 | | 1004 | Bottomless Coffee Mugs (4 Pack) | 9.99 | +----------+---------------------------------+--------------+
Exemplo
Podemos usar a seguinte consulta para obter o preço máximo dessa tabela.
SELECT MAX(ProductPrice)
FROM Products;
Resultado:
245.00
Nesse caso, as informações de preço são armazenadas no
ProductPrice
coluna, e então passamos isso como um argumento para o MAX()
função, que então calcula e retorna o resultado. Resultados filtrados
O
MAX()
A função opera nas linhas retornadas pela consulta. Portanto, se você filtrar os resultados, o resultado de MAX()
vai refletir isso. SELECT MAX(ProductPrice)
FROM Products
WHERE VendorId = 1001;
Resultado:
25.99
Nesse caso, 25,99 é o preço máximo de todos os produtos oferecidos pelo fornecedor especificado.
Dados de data/hora
Você pode usar
MAX()
em valores de data/hora. Suponha que temos a seguinte tabela:
SELECT PetName, DOB
FROM Pets;
Resultado:
+---------+------------+ | PetName | DOB | +---------+------------+ | Fluffy | 2020-11-20 | | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | | Bark | NULL | | Meow | NULL | +---------+------------+
Podemos usar
MAX()
para encontrar a data máxima de nascimento (DOB
). SELECT MAX(DOB)
FROM Pets;
Resultado:
2020-11-28
Esta seria a data de nascimento do animal de estimação mais jovem.
NULL
Valores
O
MAX()
função ignora qualquer NULL
valores. Em nossa tabela de exemplo acima, as duas últimas linhas têm NULL
valores em seu DOB
coluna, mas isso foi ignorado em nosso MAX()
exemplo. Dados de caracteres
Quando usado com colunas de dados de caracteres,
MAX()
encontra o valor mais alto na sequência de agrupamento. Exemplo:
SELECT MAX(ProductName)
FROM Products;
Resultado:
Straw Dog Box
O DISTINCT
Palavra-chave
O
DISTINCT
palavra-chave pode ser usada com o MAX()
função, no entanto, isso produz o mesmo resultado que omitir DISTINCT
. Permitindo o DISTINCT
A função permite que o MariaDB obedeça ao padrão ISO SQL. Portanto, podemos fazer isso:
SELECT MAX(DISTINCT ProductPrice)
FROM Products;
Resultado:
245.00
Mas não tem impacto nos resultados.
O
DISTINCT
palavra-chave pode ser muito útil quando usada com outros contextos (por exemplo, com o COUNT()
função), mas não tem significado quando usado com MAX()
. O DISTINCT
palavra-chave remove duplicatas, mas no caso de MAX()
não fará diferença porque MAX()
retorna o mesmo resultado, independentemente de quantas linhas compartilham o mesmo valor máximo. Funções da janela
O
MAX()
A função pode ser usada em conjunto com a função OVER
cláusula para criar uma função de janela. Veja SQL
MAX()
Para Iniciantes para um exemplo.