PostgreSQL выборка строк из партиций
Всем доброго дня. Имеется таблица со столбцами А и В:
А | В
---------------
43126 | 43125
43127 | 43125
43101 | 43100
43102 | 43100
43103 | 43100
Необходимо выбрать строки (целевая выборка):
А | В
---------------
43127 | 43125
43102 | 43100
43103 | 43100
То есть исключить из итоговой выборки только первые строки, у которых одинаковое значение в столбце В
Спасибо!
Ответы (2 шт):
Автор решения: Mike
→ Ссылка
Нумеруем записи в пределах группы, отбрасываем первые номера.
select A, B
from (
select A, B, row_number() over(partition by B order by A) RN
from table_x
) x
where RN != 1
Автор решения: Akina
→ Ссылка
Выбираем записи, для которых существует запись с тем же b и меньшим a.
SELECT *
FROM table t1
WHERE EXISTS ( SELECT NULL
FROM table t2
WHERE t1.b=t2.b AND t1.a>t2.a )