WITH city (city_nm, name) AS (
VALUES
('Москва','Петр')
,('Москва','Иван')
,('Москва','Ира')
,('Сочи','Алена')
,('Сочи','Миша')
,('Сочи','Олег')
)
SELECT
DISTINCT C.city_nm
,N.Name
FROM city C
INNER JOIN pg_temp.my_func(C.city_nm) N
USING (city_nm)
SELECT groupmember.groupid, group_concat(person.name SEPARATOR ' ') as names
FROM person
JOIN groupmember ON person.id = groupmember.personid
GROUP BY groupmember.groupid
SELECT *
FROM (
SELECT
"d"."id",
"d"."status_id",
"d"."doc_date",
"d"."doc_number",
"d"."name",
jsonb_array_length(d.extended_data->'signatures') as sign_count,
"links"."archived_at",
"links"."alias",
"ca"."short_name" AS "contractorName",
"links"."created_at"
FROM "documents_main" "d"
INNER JOIN "documents_documents_boxes" "links" ON links.box_id = '921a2331-a0b9-4791-b193-c4b206f836f6' AND links.document_id = "d"."id"
LEFT JOIN "documents_owners" "do" ON "d"."id" = "do"."document_id"
LEFT JOIN "contractors_main" "ca" ON "do"."contractor_id" = "ca"."id" AND "do"."contractor_id" != 'a1fbf6ce-0dd8-4f4a-ab82-ee0fd93b8a63'
) q
WHERE sign_count > 0
ORDER BY created_at DESC
SELECT * FROM table
SELECT * FROM table WHERE search->'t_in'->0 = ('0'::jsonb)
SELECT * FROM table WHERE (search->'t_in'->0)::int = 0
(я не проверял досконально все фильтры/условия, верю вам на слово, что они эквивалентны в обоих запросах)