Datensätze filtern bei Wechsel

Tom Weber

Benutzer
Beiträge
9
Hallo zusammen,

ich komme an der Stelle einfach nicht weiter.
Und zwar möchte ich gerne aus deiner Datenmenge alle Datensätze filtern, bei denen sich zu einem Datum die Zahl ändert. Die Liste soll rückwärts durchlaufen werden.

Folgendes Beispiel:
Zahl Datum
1 01.08.2021
1 02.08.2021
1 03.08.2021
2 04.08.2021
2 05.08.2021
3 06.08.2021
3 07.08.2021
3 08.08.2021
3 09.08.2021

Ergebnis soll sein:
Zahl Datum
3 09.08.2021
2 05.08.2021
1 03.08.2021

Vielleicht hat jemand eine Idee. Danke und LG.
 
Werbung:
Du hast nur 2 Wechsel, nicht 3. Von 1 auf 2 und von 2 auf 3. Damit auch nur 2 Ergebnisse:

Code:
edb=*# select * from tom;
 zahl |   datum   
------+------------
    1 | 01.08.2021
    1 | 02.08.2021
    1 | 03.08.2021
    2 | 04.08.2021
    2 | 05.08.2021
    3 | 06.08.2021
    3 | 07.08.2021
    3 | 08.08.2021
    3 | 09.08.2021
(9 rows)

edb=*# with x as (select *, case when lag(zahl) over (order by datum desc) != zahl then 1 else 0 end as flag from tom) select zahl, datum from x where flag = 1 order by datum desc;
 zahl |   datum   
------+------------
    2 | 05.08.2021
    1 | 03.08.2021
(2 rows)

edb=*#
 
Zurück
Oben