MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Função MAX() no MariaDB


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.