table as a GROUP BY a.name ORDER BY c
Как мне проверить существование some_id в другой таблице и если его нет, то не выводить в этом селекте?
как-то так SELECT a.name, count(a.id) as c, aggr_array(SELECT d.some_id FROM some_table as d where d.some_id = a.some_id) FROM table as a GROUP BY a.name ORDER BY c
Как-то так, если я правильно понял вопрос: SELECT a.name, COUNT(a.id) AS c, array_agg(a.some_id) FILTER (WHERE EXISTS ( SELECT 1 FROM some_table AS d WHERE d.some_id = a.some_id )) FROM a_table AS a GROUP BY a.name ORDER BY c;
Обсуждают сегодня