У меня есть PostgreSQL таблица базы данных, подобная этой:
ID | Meal |Person
--------------------------------
1 | Early Beakfast | Abc
2 | Breakfast | Abc
3 | Lunch | Abc
4 | Afternoon Snack | Abc
5 | Evening Snack | Abc
7 | Dinner | Abc
8 | late Night Snack| Abc
9 | Afternoon Snack | Def
10 | Evening Snack | Def
Я хочу вывод, подобный этому:
Anchor | Before | After | Person
----------------------------------------------------------------
Afternoon Snack | Early Breakfast | Evening Snack | Abc
Afternoon Snack | Breakfast | Dinner | Abc
Afternoon Snack | Lunch | Late Night Snack | Abc
Afternoon Snack | NULL | Evening Snack | Def
Каков наилучший подход для получения этого результата?
Я пытался использовать самостоятельное соединение для ID IN (ID + 1, ID + 2, ... ID + N), но это невозможно. ПРИМЕЧАНИЕ. Это просто пример данных. Фактические данные содержат более 2 миллионов записей. Тем не менее, якорь остается прежним.