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.

Подскажите, пожалуйста, как такое можно реализовать?)


Ответы (0 шт):