MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

MAX()-Funktion in MariaDB

In MariaDB, MAX() ist eine Aggregatfunktion, die den Maximalwert in einem bestimmten Ausdruck zurückgibt.

Syntax

Die Syntax lautet wie folgt:

MAX([DISTINCT] expr)

Beispieldaten

Angenommen, wir haben eine Tabelle mit den folgenden Daten:

SELECT
    VendorId,
    ProductName,
    ProductPrice
FROM Products;

Ergebnis:

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

Beispiel

Wir können die folgende Abfrage verwenden, um den Höchstpreis aus dieser Tabelle zu erhalten.

SELECT MAX(ProductPrice)
FROM Products;

Ergebnis:

245.00

In diesem Fall werden Preisinformationen im ProductPrice gespeichert Spalte, und wir übergeben das als Argument an MAX() Funktion, die dann das Ergebnis berechnet und zurückgibt.

Gefilterte Ergebnisse

Der MAX() Die Funktion arbeitet mit den von der Abfrage zurückgegebenen Zeilen. Wenn Sie also die Ergebnisse filtern, das Ergebnis von MAX() wird das widerspiegeln.

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

Ergebnis:

25.99

In diesem Fall ist 25,99 der Höchstpreis aller vom angegebenen Anbieter angebotenen Produkte.

Datums-/Uhrzeitdaten

Sie können MAX() verwenden auf Datums-/Uhrzeitwerten.

Angenommen, wir haben die folgende Tabelle:

SELECT PetName, DOB 
FROM Pets;

Ergebnis:

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

Wir können MAX() verwenden um das höchste Geburtsdatum zu finden (DOB ).

SELECT MAX(DOB)
FROM Pets;

Ergebnis:

2020-11-28

Dies wäre das Geburtsdatum des jüngsten Haustieres.

NULL Werte

Der MAX() Funktion ignoriert jeden NULL Werte. In unserer obigen Beispieltabelle haben die letzten beiden Zeilen NULL Werte in ihrem DOB Spalte, aber das wurde in unserem MAX() ignoriert Beispiel.

Charakterdaten

Bei Verwendung mit Zeichendatenspalten MAX() findet den höchsten Wert in der Sortierfolge.

Beispiel:

SELECT MAX(ProductName)
FROM Products;

Ergebnis:

Straw Dog Box

Der DISTINCT Schlüsselwort

Der DISTINCT Schlüsselwort kann mit dem MAX() verwendet werden Funktion, dies führt jedoch zum gleichen Ergebnis wie das Weglassen von DISTINCT . DISTINCT zulassen Funktion ermöglicht es MariaDB, dem ISO-SQL-Standard zu entsprechen.

Daher können wir Folgendes tun:

SELECT MAX(DISTINCT ProductPrice)
FROM Products;

Ergebnis:

245.00

Aber es hat keinen Einfluss auf die Ergebnisse.

Der DISTINCT Schlüsselwort kann sehr nützlich sein, wenn es mit anderen Kontexten verwendet wird (z. B. mit dem COUNT() Funktion), aber es hat keine Bedeutung, wenn es mit MAX() verwendet wird . Der DISTINCT Schlüsselwort entfernt Duplikate, aber im Fall von MAX() es macht keinen Unterschied, weil MAX() gibt dasselbe Ergebnis zurück, unabhängig davon, wie viele Zeilen denselben Maximalwert haben.

Fensterfunktionen

Der MAX() Funktion kann in Verbindung mit OVER verwendet werden -Klausel zum Erstellen einer Fensterfunktion.

Siehe SQL MAX() Ein Beispiel für Anfänger.