I PostgreSQL er MAX()
funktion beregner det maksimale af de ikke-nul-inputværdier og returnerer resultatet.
Denne funktion kan bruges på enhver numerisk, streng, dato/klokkeslæt eller enum-type, såvel som inet
, interval
, money
, oid
, pg_lsn
, tid
, og arrays af enhver af disse typer.
Eksempel
Her er et hurtigt eksempel for at demonstrere, hvordan det virker:
SELECT MAX(productprice)
FROM products;
Resultat:
245.00
I dette tilfælde productprice
er en kolonne i products
bord.
For at give dette lidt mere kontekst er her et øjebliksbillede af tabellen:
+----------+---------------------------------+--------------+ | 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 | NULL | | 1003 | Chainsaw | 245.00 | | 1003 | Straw Dog Box | 55.99 | | 1004 | Bottomless Coffee Mugs (4 Pack) | 9.99 | +----------+---------------------------------+--------------+
Vi kan se productprice
kolonne, som vi fik den maksimale værdi for i vores eksempel.
Min faktiske tabel indeholder flere kolonner, men dette viser dig kolonnen og dens kontekst i tabellen.
NULL
Værdier
MAX()
funktionen ignorerer enhver NULL
værdier. I vores eksempeltabel ovenfor har forhammeren fået NULL
i dens productprice
kolonne, men det blev ignoreret i vores MAX()
eksempel.
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.
Lad os filtrere resultaterne:
SELECT MAX(productprice)
FROM products
WHERE vendorid = 1001;
Resultat:
25.99
Dato-tidsværdier
MAX()
funktionen kan bruges på datetime-værdier:
Antag, at vi har en tabel kaldet pets
med følgende data:
+-------+---------+------------+ | petid | petname | dob | +-------+---------+------------+ | 1 | Fluffy | 2020-11-20 | | 2 | Fetch | 2019-08-16 | | 3 | Scratch | 2018-10-01 | | 4 | Wag | 2020-03-15 | | 5 | Tweet | 2020-11-28 | | 6 | Fluffy | 2020-09-17 | | 7 | Bark | NULL | | 8 | Meow | NULL | +-------+---------+------------+
Vi kan få den maksimale værdi fra dob
kolonne, som denne:
SELECT MAX(dob)
FROM pets;
Resultat:
2020-11-28
Tegndata
Når det bruges sammen med tegndatakolonner, MAX()
finder den værdi, der er højest i sorteringssekvensen.
Eksempel:
SELECT MAX(petname)
FROM pets;
Resultat:
Wag