придется реализовывать на уровне приложения?
Пояснение: в результате хочется увидеть данные только в тех строках, которые отличаются от данных в предыдущей строке либо NULL. Если обе строки содержат одинаковые данные, то такая строка не попадает в итоговую выборку.
Например:
12 one
12 one
1 one
1 two
4 three
4 three
99 three
Алгоритм формирования итоговой выборки
12 one попадает в выборку. первая строка, сравнивать не с чем.
12 one НЕ попадает в выборку. данные полностью совпадают с предыдущей строкой.
1 one попадает в выборку. изменения в "a".
1 two попадает в выборку. изменения в "b".
4 three попадает в выборку. изменения в "a" и "b".
4 three НЕ попадает в выборку. данные полностю совпадают с предыдущей строкой.
99 three попадает в выборку. изменения в "a".
Итовая выборка
12 one
1 NULL
NULL two
4 three
99 NULL
https://dbfiddle.uk/?rdbms=postgres_11&fiddle=0630ac6d01de5a624207c7bd6c85199b
distinct on (a, b)
А чем у Вас задаётся порядок (какая строка предыдущая, какая следующая)?
Обсуждают сегодня