Написание нетривиального запроса

Привет

Оч нужна помощь в написании нетривиального запроса

Есть таблица формата ниже
Нужно оставить только те строки для столбца Имя, в которых след строка Номер идет по порядку (123) (надо только до 3), но не обязательно подряд
В нашем случае это строки 123 для а и 689 для b

Может кто-то сказать как решить такую задачу?
Конкретный запрос не обязателен, нужно направление куда копать, т к с Postgre пока не очень

nn Имя Номер
1 a 1
2 a 2
3 a 3

4 a 2
5 a 3
6 b 1
7 b 3
8 b 2
9 b 3

10 b 1

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Непросто...Думаю, самым

Непросто...

Думаю, самым доступным будет сделать через процедурную функцию с циклом. Далее алгоритм пишется как любой процедурный язык.

FOR r IN
        SELECT * FROM foo WHERE fooid > 0
    LOOP
       IF r.x..... THEN
       END IF;
    END LOOP;

https://postgrespro.ru/docs/postgrespro/9.5/plpgsql-control-structures

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023