sql >> Databáze >  >> RDS >> MariaDB

Funkce MAX() v MariaDB

V MariaDB, MAX() je agregační funkce, která vrací maximální hodnotu v daném výrazu.

Syntaxe

Syntaxe vypadá takto:

MAX([DISTINCT] expr)

Ukázková data

Předpokládejme, že máme tabulku s následujícími údaji:

SELECT
    VendorId,
    ProductName,
    ProductPrice
FROM Products;

Výsledek:

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

Příklad

K získání maximální ceny z této tabulky můžeme použít následující dotaz.

SELECT MAX(ProductPrice)
FROM Products;

Výsledek:

245.00

V tomto případě jsou informace o ceně uloženy v ProductPrice a tak to předáme jako argument do MAX() funkce, která pak vypočítá a vrátí výsledek.

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.

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

Výsledek:

25.99

V tomto případě je 25,99 maximální cena ze všech produktů nabízených uvedeným prodejcem.

Datum/čas

Můžete použít MAX() na hodnotách data/času.

Předpokládejme, že máme následující tabulku:

SELECT PetName, DOB 
FROM Pets;

Výsledek:

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

Můžeme použít MAX() zjistit maximální datum narození (DOB ).

SELECT MAX(DOB)
FROM Pets;

Výsledek:

2020-11-28

To by bylo datum narození nejmladšího mazlíčka.

NULL Hodnoty

MAX() funkce ignoruje všechny NULL hodnoty. V naší vzorové tabulce výše mají poslední dva řádky NULL hodnoty v jejich DOB sloupec, ale to bylo ignorováno v našem MAX() příklad.

Ú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(ProductName)
FROM Products;

Výsledek:

Straw Dog Box

DISTINCT Klíčové slovo

DISTINCT klíčové slovo lze použít s MAX() Tato funkce však vede ke stejnému výsledku jako vynechání DISTINCT . Povolení DISTINCT funkce umožňuje MariaDB vyhovovat standardu ISO SQL.

Proto můžeme udělat toto:

SELECT MAX(DISTINCT ProductPrice)
FROM Products;

Výsledek:

245.00

Ale nemá to žádný vliv na výsledky.

DISTINCT klíčové slovo může být velmi užitečné při použití v jiných kontextech (např. s COUNT() funkce), ale při použití s ​​MAX() nemá žádný význam . DISTINCT klíčové slovo odstraní duplicity, ale v případě MAX() nebude to dělat žádný rozdíl, protože MAX() vrátí stejný výsledek bez ohledu na to, kolik řádků sdílí stejnou maximální hodnotu.

Funkce okna

MAX() funkci lze použít ve spojení s OVER klauzule k vytvoření funkce okna.

Viz SQL MAX() Příklad pro začátečníky.


  1. Chyba při instalaci mysql2:Nepodařilo se sestavit nativní rozšíření drahokamů

  2. Nejlepší nástroj pro obnovu SQL pro rok 2020 k obnovení klíčové databáze SQL

  3. Jak převést řetězec na datum/čas na serveru SQL pomocí CONVERT()

  4. Použití Pythonu a MySQL v procesu ETL