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.