postgres - приоритизированные условия для группы
Есть следующая таблица:
create table cafes (
id uuid not null
constraint cafes_pkey primary key,
identity uuid not null,
is_closed boolean,
is_illegal boolean
)
И задача - выбрать по одному кафе из каждой группы (группировка осуществляется по identity), для которого:
- приоритет#1:
is_closed = true - приоритет#2:
is_illegal = true
То есть, если имеем закрытое кафе - выбираем его. Если таковых нет - выбираем первое с is_illegal = true.
Подскажите, пожалуйста, как такое можно реализовать?)