sql >> Database >  >> RDS >> MariaDB

MAX() Functie in MariaDB

In MariaDB, MAX() is een aggregatiefunctie die de maximale waarde in een bepaalde uitdrukking retourneert.

Syntaxis

De syntaxis gaat als volgt:

MAX([DISTINCT] expr)

Voorbeeldgegevens

Stel dat we een tabel hebben met de volgende gegevens:

SELECT
    VendorId,
    ProductName,
    ProductPrice
FROM Products;

Resultaat:

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

Voorbeeld

We kunnen de volgende zoekopdracht gebruiken om de maximale prijs uit die tabel te halen.

SELECT MAX(ProductPrice)
FROM Products;

Resultaat:

245.00

In dit geval wordt prijsinformatie opgeslagen in de ProductPrice kolom, en dus geven we dat door als argument aan de MAX() functie, die vervolgens het resultaat berekent en retourneert.

Gefilterde resultaten

De MAX() functie werkt op de rijen die door de query worden geretourneerd. Dus als u de resultaten filtert, wordt het resultaat van MAX() zal dat weerspiegelen.

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

Resultaat:

25.99

In dit geval is 25,99 de maximale prijs van alle producten die door de opgegeven leverancier worden aangeboden.

Datum-/tijdgegevens

U kunt MAX() . gebruiken op datum/tijd-waarden.

Stel dat we de volgende tabel hebben:

SELECT PetName, DOB 
FROM Pets;

Resultaat:

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

We kunnen MAX() . gebruiken om de maximale geboortedatum te vinden (DOB ).

SELECT MAX(DOB)
FROM Pets;

Resultaat:

2020-11-28

Dit zou de geboortedatum van het jongste huisdier zijn.

NULL Waarden

De MAX() functie negeert elke NULL waarden. In onze voorbeeldtabel hierboven hebben de laatste twee rijen NULL waarden in hun DOB kolom, maar dat werd genegeerd in onze MAX() voorbeeld.

Karaktergegevens

Bij gebruik met karaktergegevenskolommen, MAX() vindt de waarde die het hoogst is in de sorteervolgorde.

Voorbeeld:

SELECT MAX(ProductName)
FROM Products;

Resultaat:

Straw Dog Box

De DISTINCT Zoekwoord

De DISTINCT trefwoord kan worden gebruikt met de MAX() functie geeft dit echter hetzelfde resultaat als het weglaten van DISTINCT . De DISTINCT . toestaan Met deze functie kan MariaDB voldoen aan de ISO SQL-standaard.

Daarom kunnen we dit doen:

SELECT MAX(DISTINCT ProductPrice)
FROM Products;

Resultaat:

245.00

Maar het heeft geen invloed op de resultaten.

De DISTINCT trefwoord kan erg handig zijn bij gebruik met andere contexten (bijv. met de COUNT() functie), maar het heeft geen betekenis bij gebruik met MAX() . De DISTINCT trefwoord verwijdert duplicaten, maar in het geval van MAX() het maakt geen verschil omdat MAX() geeft hetzelfde resultaat, ongeacht hoeveel rijen dezelfde maximale waarde delen.

Vensterfuncties

De MAX() functie kan worden gebruikt in combinatie met de OVER clausule om een ​​vensterfunctie te maken.

Zie SQL MAX() Voor beginners bijvoorbeeld.


  1. Aan de slag met PostgreSQL-streamingreplicatie

  2. Snelle gesplitste partitionering

  3. MICROSECONDE() Voorbeeld – MySQL

  4. Wat zijn de voordelen van het hebben van een verkoopdatabase?