©SQL :: Manager
HomeProgramm-InformationenTechnische DetailsKostenloser DownloadKaffee für den Autor
Netzwelt
SQL-FunktionMySQLMariaDB

Die LAST_VALUE SQL-Funktion in MySQL und MariaDB - Ausdrücke auswerten und letzten zurückgeben

LAST_VALUESyntax:LAST_VALUE(Ausdruck [, Ausdruck ...])
Rückgabe-Wert:Abhängig von den verwendeten Datentypen
Funktions-Typ:Window-Funktion, Informations-Funktion
Funktions-Beschreibung

Die LAST_VALUE()-Funktion wertet die übergebenen Ausdrücke aus und gibt den Wert des letzten Ausdruck zurück.

Zusammen mit dem Setzen von Benutzervariablen in den Ausdrücken, können beispielsweise Daten von aktualisierten oder gelöschten Daten-Zeilen in einer einzigen Abfrage auf die Tabelle zurückgegeben werden.

Wenn kein letzter Wert vorhanden ist, gibt die Funktion NULL zurück.

SQL Beispiele für die LAST_VALUE-Funktion

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

select last_value(1,2);
select last_value(19,12,14,13);
select last_value('a','b','c','d');



DROP TABLE IF EXISTS `test_table`;

CREATE TABLE `test_table` (
  `id` int(11) NOT null AUTO_INCREMENT,
  `name` varchar(20) DEFAULT null,
  `type` enum('First','Second','Third','Last'DEFAULT null,
  `set` SET('First','Second','Third','Last'DEFAULT null,
  `num` int(11) NOT null DEFAULT 0,
  `price` decimal(10,2) NOT null DEFAULT 0.00,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;

INSERT INTO `test_table` (`id`,`name`,`type`,`set`,`num`,`price`VALUES 
(1,'Art 1','First','Last',1,10.50),
(2,'Art 2','Second','First,Last',3,12.50),
(3,'Art 3','Second','Second,Last',2,15.50),
(4,'Art 4','Third','First,Second',5,25.50),
(5,'Art 5','Last','First,Last',2,5.50),
(6,'Art 6','First','First',12,1.50),
(7,'Art 7','Third','First,Third',20,1.75),
(8,'Art 8','Last','Second,Third',100,11.90);

SELECT * FROM `test_table`;

SELECT * FROM `test_table` where id=last_value(@n:=name, @t:=`type`@s:=`set`, 1);
select @n@t@s;

delete FROM `test_table` where id=last_value(@n:=name, @t:=`type`@s:=`set`, 8);
select @n@t@s;

update `test_table` set `type`='first' where last_value(@n:=name, @t:=`type`@s:=`set`, 1);
select @n@t@s;
SELECT * FROM `test_table` 

last_value(1,2)
int(1)
2
last_value(19,12,14,13)
int(2)
13
last_value('a','b','c','d')
varchar(1) BINARY
d
id
name
type
set
num
price
int(11)varchar(20) LATIN1enum LATIN1set LATIN1int(11)decimal(10,2)
1Art 1FirstLast110.50
2Art 2SecondFirst,Last312.50
3Art 3SecondSecond,Last215.50
4Art 4ThirdFirst,Second525.50
5Art 5LastFirst,Last25.50
6Art 6FirstFirst121.50
7Art 7ThirdFirst,Third201.75
8Art 8LastSecond,Third10011.90
id
name
type
set
num
price
int(11)varchar(20) LATIN1enum LATIN1set LATIN1int(11)decimal(10,2)
1Art 1FirstLast110.50
@n
@t
@s
Art 8LastSecond,Third
@n
@t
@s
Art 8LastSecond,Third
@n
@t
@s
Art 7ThirdFirst,Third
id
name
type
set
num
price
int(11)varchar(20) LATIN1enum LATIN1set LATIN1int(11)decimal(10,2)
1Art 1FirstLast110.50
2Art 2FirstFirst,Last312.50
3Art 3FirstSecond,Last215.50
4Art 4FirstFirst,Second525.50
5Art 5FirstFirst,Last25.50
6Art 6FirstFirst121.50
7Art 7FirstFirst,Third201.75
Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: Download

Verwendung der LAST_VALUE() Funktion in MySQL und MariaDB-Datenbanken

Die Funktion LAST_VALUE() wird in MySQL und MariaDB verwendet, um den letzten Wert in einer geordneten Reihe von Zeilen abzurufen. Sie wird normalerweise in Verbindung mit der OVER-Klausel verwendet, die das Fenster oder die Teilmenge von Zeilen definiert, für die die Funktion ausgeführt wird. Mit der Funktion kann auf die letzten Werte in diesem Daten-Fenster zugegriffen werden.

Die Funktion dient unter Anderem zum Analysieren von Zeitreihendaten, beispielsweise in Tabellen, in denen Zeitreihendaten wie Aktienkurse oder Sensorwerte gespeichert sind, kann LAST_VALUE() verwendet werden, um die neuesten Werte in der Reihe abzurufen durch Ordnung der Daten-Zeilen nach Zeitstempel. Weiter können mit der Funktion Datenänderungen im Laufe der Zeit verfolgt werden, zum Beispiel bei einem Prüfprotokoll oder einem Revisionsverlauf kann mittels der Funktion der neueste Status eines bestimmten Felds ermittelt werden.

Beim Suchen nach dem letzten Vorkommen eines bestimmten Ereignisses oder einer bestimmten Bedingung kann mit LAST_VALUE() die letzte Instanz eines bestimmten Werts oder einer bestimmten Bedingung in einer Tabellen-Spalte abgerufen werden. Auch kann die Funktion hilfreich sein, wenn kumulative Werte basierend auf einer bestimmten Reihenfolge berechnet werden sollen, beispielsweise eine laufende Summe, wobei der Wert jeder Zeile vom Wert der vorherigen Zeile plus dem Wert der aktuellen Zeile abhängt.

Die Verwendung von LAST_VALUE() erfordert meistens eine ORDER BY-Klausel in der OVER-Klausel, da die Reihenfolge der Daten bestimmt, welche Zeilen für die Berechnung des letzten Werts berücksichtigt werden.
IS_UUIDISNULLLAST_INSERT_IDLAST_VALUELASTVALLCASELEAST

Weitere MySQL und MariaDB SQL Window-Funktionen

AVGAVG(Ausdruck oder Spalte)
Mehr zur AVG-Funktion

BIT_ANDBIT_AND(Ausdruck oder Spalte)
Mehr zur BIT_AND-Funktion

BIT_ORBIT_OR(Ausdruck oder Spalte)
Mehr zur BIT_OR-Funktion

BIT_XORBIT_XOR(Ausdruck oder Spalte)
Mehr zur BIT_XOR-Funktion

CUME_DISTCUME_DIST()

DENSE_RANKDENSE_RANK()

FIRST_VALUEFIRST_VALUE(Ausdruck)

JSON_ARRAYAGGJSON_ARRAYAGG(Ausdruck oder Spalte)

JSON_OBJECTAGGJSON_OBJECTAGG(Ausdruck oder Spalte)

LAGLAG(Ausdruck [, Zeilen] [, Standart])

LEADLEAD(Ausdruck [, Zeilen] [, Standart])

MAXMAX(Ausdruck oder Spalte)
Mehr zur MAX-Funktion

MEDIANMEDIAN(Ausdruck oder Spalte)
Mehr zur MEDIAN-Funktion

MINMIN(Ausdruck oder Spalte)
Mehr zur MIN-Funktion

NTH_VALUENTH_VALUE(Ausdruck [, Zeile])

NTILENTILE(Anzahl)

PERCENT_RANKPERCENT_RANK()

PERCENTILE_CONTPERCENTILE_CONT()

PERCENTILE_DISCPERCENTILE_DISC()

RANKRANK()

ROW_NUMBERROW_NUMBER()

STDSTD(Ausdruck oder Spalte)
Mehr zur STD-Funktion

STDDEVSTDDEV(Ausdruck oder Spalte)
Mehr zur STDDEV-Funktion

STDDEV_POPSTDDEV_POP(Ausdruck oder Spalte)
Mehr zur STDDEV_POP-Funktion

STDDEV_SAMPSTDDEV_SAMP(Ausdruck oder Spalte)
Mehr zur STDDEV_SAMP-Funktion

SUMSUM(Ausdruck oder Spalte)
Mehr zur SUM-Funktion

VAR_POPVAR_POP(Ausdruck oder Spalte)
Mehr zur VAR_POP-Funktion

VAR_SAMPVAR_SAMP(Ausdruck oder Spalte)
Mehr zur VAR_SAMP-Funktion

VARIANCEVARIANCE(Ausdruck oder Spalte)
Mehr zur VARIANCE-Funktion

Numerische FunktionenZeichenketten-FunktionenReguläre AusdrückeDatum und Zeit-Funktionen
Vergleichs-FunktionenVerschlüsselung & KomprimierungKonvertierungs-FunktionenNULL-Funktionen
Aggregat-FunktionenWindow-FunktionenJSON-FunktionenGeometrische Funktionen
Sequenz-FunktionenInformations-FunktionenDynamische Tabellen-SpaltenSonstige Funktionen
Weitere Informationen zur SQL-Funktion LAST_VALUE: mysql.com und mariadb.com
Aktualisiert: 17.09.2023ImpressumKontaktGeschäftsbedingungenDatenschutz & CookiesUpdatesSitemapFacebookLinkedinTwitterStatistics©2020-2024 Heino Cunze-Fischer