Хотя вывод объяснения анализа был бы очень полезен, в этом запросе есть пара красных флажков.Я предпочитаю избегать подвыборов в списке столбцов в той степени, в которой этого можно избежать, поскольку это снижает читабельность.
Однако в этом случае ваши подпланы создают ненужные объединения через потенциально большие таблицы.что нужно сделать, это выделить эти подвыборки.Они затрудняют чтение и отслеживание вашего запроса, а также добавляют несколько повторяющихся объединений, которые означают дополнительное сканирование, возможно, больших таблиц.Например, вы можете поместить CASE
внутри array_agg
и т. П.
Если это не сработает, пожалуйста, опишите результаты анализа, и мы можем посмотреть на индексы оттуда.