YS
Size: a a a
YS
NL
WITH a (id, typ) AS (
VALUES
(1, 'a'),
(2, 'a'),
(3, 'b'),
(4, 'b'),
(5, 'b'),
(6, 'c'),
(7, 'c'),
(8, 'c'),
(9, 'b'),
(10, 'b')
)
,b AS (
SELECT
*,
CASE WHEN typ != lag(typ) OVER (ORDER BY id) THEN 1 ELSE 0 END grp_flag
FROM
a
)
,c AS (
SELECT
*,
sum(grp_flag) OVER (ORDER BY id) grp
FROM
b
)
SELECT
id,
typ,
grp,
min(typ) OVER (PARTITION BY grp) group_typ
FROM
c;
D
DR
AN
DR
D
Л
#ש
D
am
DR
Л
D
D
D
Л
D
Л
D