create table t1 (
pk int primary key,
a int,
b int,
c char(10),
d decimal(10, 3),
e real
);
insert into t1 values
( 1, 0, 1, 'one', 0.1, 0.001),
( 2, 0, 2, 'two', 0.2, 0.002),
( 3, 0, 3, 'three', 0.3, 0.003),
( 4, 1, 2, 'three', 0.4, 0.004),
( 5, 1, 1, 'two', 0.5, 0.005),
( 6, 1, 1, 'one', 0.6, 0.006),
( 7, 2, NULL, 'n_one', 0.5, 0.007),
( 8, 2, 1, 'n_two', NULL, 0.008),
( 9, 2, 2, NULL, 0.7, 0.009),
(10, 2, 0, 'n_four', 0.8, 0.010),
(11, 2, 10, NULL, 0.9, NULL);
select pk,
lead(pk) over (order by pk),
lead(pk, 1) over (order by pk),
lead(pk, 2) over (order by pk),
lead(pk, 0) over (order by pk),
lead(pk, -1) over (order by pk),
lead(pk, -2) over (order by pk)
from t1
order by pk asc;
pk lead(pk) over (order by pk) lead(pk, 1) over (order by pk) lead(pk, 2) over (order by pk) lead(pk, 0) over (order by pk) lead(pk, -1) over (order by pk) lead(pk, -2) over (order by pk) 12231 NULL NULL 233421 NULL 3445321 4556432 5667543 6778654 7889765 89910876 9101011987 101111 NULL 1098 11 NULL NULL NULL 11109
select pk,
lag(pk) over (order by pk),
lag(pk, 1) over (order by pk),
lag(pk, 2) over (order by pk),
lag(pk, 0) over (order by pk),
lag(pk, -1) over (order by pk),
lag(pk, -2) over (order by pk)
from t1
order by pk asc;
pk lag(pk) over (order by pk) lag(pk, 1) over (order by pk) lag(pk, 2) over (order by pk) lag(pk, 0) over (order by pk) lag(pk, -1) over (order by pk) lag(pk, -2) over (order by pk) 1 NULL NULL NULL 123 211 NULL 234 3221345 4332456 5443567 6554678 7665789 87768910 988791011 109981011 NULL 111010911 NULL NULL
select pk, pk - 2,
lag(pk, pk - 2) over (order by pk),
lead(pk, pk - 2) over (order by pk)
from t1
order by pk asc;
pk pk - 2 lag(pk, pk - 2) over (order by pk) lead(pk, pk - 2) over (order by pk) 1 -12 NULL 2022 3124 4226 5328 64210 752 NULL 862 NULL 972 NULL 1082 NULL 1192 NULL
select pk, pk - 2,
lag(pk, pk + 2) over (order by pk),
lead(pk, pk + 2) over (order by pk)
from t1
order by pk asc;
pk pk - 2 lag(pk, pk + 2) over (order by pk) lead(pk, pk + 2) over (order by pk) 1 -1 NULL 4 20 NULL 6 31 NULL 8 42 NULL 10 53 NULL NULL 64 NULL NULL 75 NULL NULL 86 NULL NULL 97 NULL NULL 108 NULL NULL 119 NULL NULL
select pk, a,
lead(pk) over (partition by a order by pk),
lead(pk, 1) over (partition by a order by pk),
lead(pk, 2) over (partition by a order by pk),
lead(pk, 0) over (partition by a order by pk),
lead(pk, -1) over (partition by a order by pk),
lead(pk, -2) over (partition by a order by pk)
from t1
order by pk asc;
pk a lead(pk) over (partition by a order by pk) lead(pk, 1) over (partition by a order by pk) lead(pk, 2) over (partition by a order by pk) lead(pk, 0) over (partition by a order by pk) lead(pk, -1) over (partition by a order by pk) lead(pk, -2) over (partition by a order by pk) 102231 NULL NULL 2033 NULL 21 NULL 30 NULL NULL NULL 321 415564 NULL NULL 5166 NULL 54 NULL 61 NULL NULL NULL 654 728897 NULL NULL 82991087 NULL 92101011987 1021111 NULL 1098 112 NULL NULL NULL 11109
select pk, a,
lag(pk) over (partition by a order by pk),
lag(pk, 1) over (partition by a order by pk),
lag(pk, 2) over (partition by a order by pk),
lag(pk, 0) over (partition by a order by pk),
lag(pk, -1) over (partition by a order by pk),
lag(pk, -2) over (partition by a order by pk)
from t1
order by pk asc;
pk a lag(pk) over (partition by a order by pk) lag(pk, 1) over (partition by a order by pk) lag(pk, 2) over (partition by a order by pk) lag(pk, 0) over (partition by a order by pk) lag(pk, -1) over (partition by a order by pk) lag(pk, -2) over (partition by a order by pk) 10 NULL NULL NULL 123 2011 NULL 23 NULL 302213 NULL NULL 41 NULL NULL NULL 456 5144 NULL 56 NULL 615546 NULL NULL 72 NULL NULL NULL 789 8277 NULL 8910 9288791011 1029981011 NULL 1121010911 NULL NULL
select pk, a, pk - 2,
lag(pk, pk - 2) over (partition by a order by pk),
lead(pk, pk - 2) over (partition by a order by pk),
lag(pk, a - 2) over (partition by a order by pk),
lead(pk, a - 2) over (partition by a order by pk)
from t1
order by pk asc;
pk a pk - 2 lag(pk, pk - 2) over (partition by a order by pk) lead(pk, pk - 2) over (partition by a order by pk) lag(pk, a - 2) over (partition by a order by pk) lead(pk, a - 2) over (partition by a order by pk) 10 -12 NULL 3 NULL 20022 NULL NULL 3012 NULL NULL 1 412 NULL 65 NULL 513 NULL NULL 64 614 NULL NULL NULL 5 725 NULL NULL 77 826 NULL NULL 88 927 NULL NULL 99 1028 NULL NULL 1010 1129 NULL NULL 1111
select pk, a, pk - 2,
lag(pk, pk + 2) over (partition by a order by pk),
lead(pk, pk + 2) over (partition by a order by pk),
lag(pk, a + 2) over (partition by a order by pk),
lead(pk, a + 2) over (partition by a order by pk)
from t1
order by pk asc;
pk a pk - 2 lag(pk, pk + 2) over (partition by a order by pk) lead(pk, pk + 2) over (partition by a order by pk) lag(pk, a + 2) over (partition by a order by pk) lead(pk, a + 2) over (partition by a order by pk) 10 -1 NULL NULL NULL 3 200 NULL NULL NULL NULL 301 NULL NULL 1 NULL 412 NULL NULL NULL NULL 513 NULL NULL NULL NULL 614 NULL NULL NULL NULL 725 NULL NULL NULL 11 826 NULL NULL NULL NULL 927 NULL NULL NULL NULL 1028 NULL NULL NULL NULL 1129 NULL NULL 7 NULL
select pk, a, b, c, d, e,
lag(a) over (partition by a order by pk),
lag(b) over (partition by a order by pk),
lag(c) over (partition by a order by pk),
lag(d) over (partition by a order by pk),
lag(e) over (partition by a order by pk)
from t1
order by pk asc;
pk a b c d e lag(a) over (partition by a order by pk) lag(b) over (partition by a order by pk) lag(c) over (partition by a order by pk) lag(d) over (partition by a order by pk) lag(e) over (partition by a order by pk) 101 one 0.1000.001 NULL NULL NULL NULL NULL 202 two 0.2000.00201 one 0.1000.001 303 three 0.3000.00302 two 0.2000.002 412 three 0.4000.004 NULL NULL NULL NULL NULL 511 two 0.5000.00512 three 0.4000.004 611 one 0.6000.00611 two 0.5000.005 72 NULL n_one 0.5000.007 NULL NULL NULL NULL NULL 821 n_two NULL 0.0082 NULL n_one 0.5000.007 922 NULL 0.7000.00921 n_two NULL 0.008 1020 n_four 0.8000.0122 NULL 0.7000.009 11210 NULL 0.900 NULL 20 n_four 0.8000.01
select pk, a, b, a+b,
lag(a + b) over (partition by a order by pk)
from t1
order by pk asc;
pk a b a+b lag(a + b) over (partition by a order by pk) 1011 NULL 20221 30332 4123 NULL 51123 61122 72 NULL NULL NULL 8213 NULL 92243 102024 11210122
select pk, a, b, a+b,
lag(a + b) over (partition by a order by pk) + pk
from t1
order by pk asc;
pk a b a+b lag(a + b) over (partition by a order by pk) + pk 1011 NULL 20223 30335 4123 NULL 51128 61128 72 NULL NULL NULL 8213 NULL 922412 1020214 112101213
#
# MDEV-15204 - LAG function doesn't require ORDER BY in OVER clause
#
select pk,
lag(pk, 1) over ()
from t1; ERROR HY000: No order list in window specification for 'lag'
select pk,
lead(pk, 1) over ()
from t1; ERROR HY000: No order list in window specification for 'lead'
drop table t1;
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-10-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.