sql >> Databasteknik >  >> RDS >> MariaDB

MAX() Funktion i MariaDB

I MariaDB, MAX() är en aggregerad funktion som returnerar det maximala värdet i ett givet uttryck.

Syntax

Syntaxen ser ut så här:

MAX([DISTINCT] expr)

Exempeldata

Anta att vi har en tabell med följande 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 |
+----------+---------------------------------+--------------+

Exempel

Vi kan använda följande fråga för att få maxpriset från den tabellen.

SELECT MAX(ProductPrice)
FROM Products;

Resultat:

245.00

I det här fallet lagras prisinformation i ProductPrice kolumnen, och så skickar vi det som ett argument till MAX() funktion, som sedan beräknar och returnerar resultatet.

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.

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

Resultat:

25.99

I det här fallet är 25,99 maxpriset av alla produkter som erbjuds av den angivna leverantören.

Datum/tiddata

Du kan använda MAX() på datum/tidsvärden.

Anta att vi har följande tabell:

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 använda MAX() för att hitta det maximala födelsedatumet (DOB ).

SELECT MAX(DOB)
FROM Pets;

Resultat:

2020-11-28

Detta skulle vara födelsedatumet för det yngsta husdjuret.

NULL Värden

MAX() funktionen ignorerar någon NULL värden. I vår exempeltabell ovan har de två sista raderna NULL värden i deras DOB kolumn, men det ignorerades i vår MAX() exempel.

Teckendata

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

Exempel:

SELECT MAX(ProductName)
FROM Products;

Resultat:

Straw Dog Box

DISTINCT Nyckelord

DISTINCT nyckelordet kan användas med MAX() funktion, men detta ger samma resultat som att utelämna DISTINCT . Tillåter DISTINCT funktionen gör det möjligt för MariaDB att följa ISO SQL-standarden.

Därför kan vi göra detta:

SELECT MAX(DISTINCT ProductPrice)
FROM Products;

Resultat:

245.00

Men det har ingen inverkan på resultaten.

DISTINCT Nyckelordet kan vara mycket användbart när det används med andra sammanhang (t.ex. med COUNT() funktion), men den har ingen betydelse när den används med MAX() . DISTINCT nyckelordet tar bort dubbletter, men i fallet med MAX() det kommer inte att göra någon skillnad eftersom MAX() returnerar samma resultat oavsett hur många rader som delar samma maxvärde.

Fönsterfunktioner

MAX() funktionen kan användas tillsammans med OVER klausul för att skapa en fönsterfunktion.

Se SQL MAX() För nybörjare till exempel.


  1. PostgreSQL:FOREIGN KEY/ON DELETE CASCADE

  2. MySQL Cross Server Select Query

  3. Postgresql GROUP_CONCAT motsvarande?

  4. MariaDB SCHEMA() Förklarat