У меня есть профиль таблицы, содержащий статус этого профиля, т.е. активная и неактивная заметка, есть несколько неактивных записей статуса для одного csr_id, но наверняка только одна или ни одна запись с активным статусом
таблица для справки: -
id | status | csr_id |
---+-----------+---------
1 | inactive | 1
2 | inactive | 1
3 | inactive | 1
4 | inactive | 1
5 | inactive | 2
6 | inactive | 2
7 | inactive | 2
8 | inactive | 2
9 | active | 2
запрос для справки: -
(select * from profile where csr_id IN (2,1) AND status = 'active')
UNION
(select DISTINCT ON (csr_id) *from profile where csr_id IN (2,1) AND status = 'inactive') order by status
Результат: -
id | status | csr_id |
-----+----------+---------------+--------
9 | active | 2
4 | inactive | 1
8 | inactive | 2
ожидаемый результат: -
id | status | csr_id |
-----+----------+---------
9 | active | 2
4 | inactive | 1
потому что csr_id 2 активен, то игнорировать неактивную запись для csr_id 2
любое решение?