sql >> Base de Datos >  >> RDS >> MariaDB

Función MAX() en MariaDB

En MariaDB, MAX() es una función agregada que devuelve el valor máximo en una expresión dada.

Sintaxis

La sintaxis es así:

MAX([DISTINCT] expr)

Datos de muestra

Supongamos que tenemos una tabla con los siguientes datos:

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 |
+----------+---------------------------------+--------------+

Ejemplo

Podemos usar la siguiente consulta para obtener el precio máximo de esa tabla.

SELECT MAX(ProductPrice)
FROM Products;

Resultado:

245.00

En este caso, la información de precios se almacena en el ProductPrice columna, y así lo pasamos como argumento a MAX() función, que luego calcula y devuelve el resultado.

Resultados filtrados

El MAX() opera en las filas devueltas por la consulta. Entonces, si filtra los resultados, el resultado de MAX() reflejará eso.

SELECT MAX(ProductPrice)
FROM Products
WHERE VendorId = 1001;

Resultado:

25.99

En este caso, 25,99 es el precio máximo de todos los productos ofrecidos por el proveedor especificado.

Datos de fecha/hora

Puedes usar MAX() en valores de fecha/hora.

Supongamos que tenemos la siguiente tabla:

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 la fecha máxima de nacimiento (DOB ).

SELECT MAX(DOB)
FROM Pets;

Resultado:

2020-11-28

Esta sería la fecha de nacimiento de la mascota más joven.

NULL Valores

El MAX() la función ignora cualquier NULL valores. En nuestra tabla de ejemplo anterior, las dos últimas filas tienen NULL valores en su DOB columna, pero eso fue ignorado en nuestro MAX() ejemplo.

Datos del personaje

Cuando se usa con columnas de datos de caracteres, MAX() encuentra el valor más alto en la secuencia de clasificación.

Ejemplo:

SELECT MAX(ProductName)
FROM Products;

Resultado:

Straw Dog Box

El DISTINCT Palabra clave

El DISTINCT la palabra clave se puede usar con MAX() sin embargo, esto produce el mismo resultado que omitir DISTINCT . Permitiendo el DISTINCT La función permite a MariaDB cumplir con el estándar ISO SQL.

Por lo tanto, podemos hacer esto:

SELECT MAX(DISTINCT ProductPrice)
FROM Products;

Resultado:

245.00

Pero no tiene impacto en los resultados.

El DISTINCT La palabra clave puede ser muy útil cuando se usa con otros contextos (por ejemplo, con COUNT() función), pero no tiene significado cuando se usa con MAX() . El DISTINCT palabra clave elimina los duplicados, pero en el caso de MAX() no hará ninguna diferencia porque MAX() devuelve el mismo resultado independientemente de cuántas filas compartan el mismo valor máximo.

Funciones de ventana

El MAX() La función se puede usar junto con OVER cláusula para crear una función de ventana.

Ver SQL MAX() Para principiantes, por ejemplo.