У меня есть столбец jsonb
, в котором есть информация о рекламных акциях.
Я бы хотел отфильтровать ключи так, чтобы они находились в предопределенном списке.
Я применил то, что было для меня интуитивно, where code in ('foo', 'bar')
, но это вызывает ошибку: ANY/ALL (array) does not support set arguments
Есть идеи?
Запрос:
select
upper(jsonb_object_keys(orders.extra_details -> 'promotion_codes')) as promo_code,
count(tickets.id)
from
tickets
inner join order_items on order_items.orderable_id = tickets.id
inner join orders on orders.id = order_items.order_id
where
order_items.type = 'TicketOrderItem'
and orders.extra_details -> 'promotion_codes' is not null
and tickets.event_id = 4062
and tickets.status = 2
and upper(jsonb_object_keys(orders.extra_details -> 'promotion_codes')) in ('FOO', 'BAR', 'BAZ')
group by
1
order by
1