sql >> Database teknologi >  >> RDS >> MariaDB

MAX() Funktion i MariaDB

I MariaDB, MAX() er en aggregeret funktion, der returnerer den maksimale værdi i et givet udtryk.

Syntaks

Syntaksen ser sådan ud:

MAX([DISTINCT] expr)

Eksempel på data

Antag, at vi har en tabel med følgende data:

SELECT
    VendorId,
    ProductName,
    ProductPrice
FROM Products;

Resultat:

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

Eksempel

Vi kan bruge følgende forespørgsel til at få den maksimale pris fra den tabel.

SELECT MAX(ProductPrice)
FROM Products;

Resultat:

245.00

I dette tilfælde gemmes prisoplysninger i ProductPrice kolonne, og så sender vi det som et argument til MAX() funktion, som derefter beregner og returnerer resultatet.

Filtrerede resultater

MAX() funktionen fungerer på de rækker, der returneres af forespørgslen. Så hvis du filtrerer resultaterne, er resultatet af MAX() vil afspejle det.

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

Resultat:

25.99

I dette tilfælde er 25,99 den maksimale pris for alle de produkter, der tilbydes af den angivne leverandør.

Data-/tidsdata

Du kan bruge MAX() på dato/tidsværdier.

Antag, at vi har følgende tabel:

SELECT PetName, DOB 
FROM Pets;

Resultat:

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

Vi kan bruge MAX() for at finde den maksimale fødselsdato (DOB ).

SELECT MAX(DOB)
FROM Pets;

Resultat:

2020-11-28

Dette ville være fødselsdatoen for det yngste kæledyr.

NULL Værdier

MAX() funktionen ignorerer enhver NULL værdier. I vores eksempeltabel ovenfor har de sidste to rækker NULL værdier i deres DOB kolonne, men det blev ignoreret i vores MAX() eksempel.

Tegndata

Når det bruges sammen med tegndatakolonner, MAX() finder den værdi, der er højest i sorteringssekvensen.

Eksempel:

SELECT MAX(ProductName)
FROM Products;

Resultat:

Straw Dog Box

DISTINCT Søgeord

DISTINCT nøgleordet kan bruges med MAX() funktion, men dette giver det samme resultat som at udelade DISTINCT . Tillad DISTINCT funktion gør det muligt for MariaDB at overholde ISO SQL-standarden.

Derfor kan vi gøre dette:

SELECT MAX(DISTINCT ProductPrice)
FROM Products;

Resultat:

245.00

Men det har ingen indflydelse på resultaterne.

DISTINCT Nøgleord kan være meget nyttigt, når det bruges sammen med andre sammenhænge (f.eks. med COUNT() funktion), men den har ingen betydning, når den bruges sammen med MAX() . DISTINCT søgeord fjerner dubletter, men i tilfælde af MAX() det vil ikke gøre nogen forskel, fordi MAX() returnerer det samme resultat, uanset hvor mange rækker der deler den samme maksimale værdi.

Vinduefunktioner

MAX() funktionen kan bruges sammen med OVER klausul for at oprette en vinduesfunktion.

Se SQL MAX() For begyndere for eksempel.


  1. Fjern primærnøgle i MySQL

  2. Sådan ændres root-adgangskoden til MySQL eller MariaDB i Linux

  3. mysql opdateringskolonne med værdi fra en anden tabel

  4. Sådan ombrydes lange tekstlinjer i SQLite-resultater