sql >> Databasteknik >  >> RDS >> PostgreSQL

MAX() Funktion i PostgreSQL

I PostgreSQL, MAX() funktionen beräknar det maximala av de icke-null-ingångsvärden och returnerar resultatet.

Denna funktion kan användas på valfri numerisk, sträng, datum/tid eller enumtyp, såväl som inet , interval , money , oid , pg_lsn , tid , och matriser av någon av dessa typer.

Exempel

Här är ett snabbt exempel för att visa hur det fungerar:

SELECT MAX(productprice) 
FROM products;

Resultat:

245.00

I det här fallet, productprice är en kolumn i products tabell.

För att ge detta lite mer sammanhang, här är en ögonblicksbild av 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 kolumn som vi fick det maximala värdet för i vårt exempel.

Min faktiska tabell innehåller fler kolumner, men det här visar dig kolumnen och dess sammanhang i tabellen.

NULL Värden

MAX() funktionen ignorerar någon NULL värden. I vår exempeltabell ovan har släggan fått NULL i dess productprice kolumn, men det ignorerades i vår MAX() exempel.

Filtrerade resultat

MAX() funktionen fungerar på raderna som returneras av frågan. Så om du filtrerar resultaten blir resultatet av MAX() kommer att återspegla det.

Låt oss filtrera resultaten:

SELECT MAX(productprice) 
FROM products
WHERE vendorid = 1001;

Resultat:

25.99

Datetime-värden

MAX() funktionen kan användas på datetime-värden:

Anta att vi har en tabell som heter pets med följande 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å det maximala värdet från dob kolumn, så här:

SELECT MAX(dob) 
FROM pets;

Resultat:

2020-11-28

Teckendata

När det används med teckendatakolumner, MAX() hittar det värde som är högst i sorteringssekvensen.

Exempel:

SELECT MAX(petname) 
FROM pets;

Resultat:

Wag

  1. Äter vår egen hundmat – kör JIRA på MariaDB

  2. Jag glömde lösenordet som jag angav under postgres-installationen

  3. Kardinalitetsuppskattning för ett predikat på ett COUNT-uttryck

  4. SQL Server REPLACE() vs TRANSLATE():Vilka är skillnaderna?