V PostgreSQL je to MAX()
funkce vypočítá maximum z nenulových vstupních hodnot a vrátí výsledek.
Tuto funkci lze použít pro jakýkoli číselný, řetězcový, datum/čas nebo typ enum, stejně jako inet
, interval
, money
, oid
, pg_lsn
, tid
a pole kteréhokoli z těchto typů.
Příklad
Zde je rychlý příklad demonstrující, jak to funguje:
SELECT MAX(productprice)
FROM products;
Výsledek:
245.00
V tomto případě productprice
je sloupec v products
stůl.
Abychom tomu dodali trochu více kontextu, zde je snímek tabulky:
+----------+---------------------------------+--------------+ | 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 | +----------+---------------------------------+--------------+
Vidíme productprice
sloupec, pro který jsme v našem příkladu získali maximální hodnotu.
Moje skutečná tabulka obsahuje více sloupců, ale toto zobrazuje sloupec a jeho kontext v tabulce.
NULL
Hodnoty
MAX()
funkce ignoruje všechny NULL
hodnoty. V naší vzorové tabulce výše má perlík NULL
v jeho productprice
sloupec, ale to bylo ignorováno v našem MAX()
příklad.
Filtrované výsledky
MAX()
funkce pracuje na řádcích vrácených dotazem. Pokud tedy filtrujete výsledky, výsledek MAX()
to bude odrážet.
Umožňuje filtrovat výsledky:
SELECT MAX(productprice)
FROM products
WHERE vendorid = 1001;
Výsledek:
25.99
Hodnoty data a času
MAX()
funkci lze použít na hodnoty datetime:
Předpokládejme, že máme tabulku nazvanou pets
s následujícími údaji:
+-------+---------+------------+ | 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 | +-------+---------+------------+
Maximální hodnotu můžeme získat z dob
sloupec takto:
SELECT MAX(dob)
FROM pets;
Výsledek:
2020-11-28
Údaje o postavách
Při použití se sloupci znakových dat MAX()
najde hodnotu, která je v porovnávací posloupnosti nejvyšší.
Příklad:
SELECT MAX(petname)
FROM pets;
Výsledek:
Wag