доступ к подзапросу возвращает значение в объединении с другими таблицами postgres

#postgresql

Вопрос:

Учитывая следующий запрос:

 select parent_id from (
    select parent_id, (most_recent_sit(date, child_id, key)).*
    from links
    where child_id = ANY(source_ids)
    group by parent_id
) as subquery
union select * from link_traversal(
    array(select parent_id from subquery),
);
 

Postgres выдает следующую ошибку при вызове функции link_traversal:

 relation "subquery" does not exist
 

link_traversal() и most_recent_sit () — это пользовательские функции, которые я создал. Я хотел бы использовать две функции и объединить результаты вместе, где я ссылаюсь на результаты most_recent_sit() в качестве входных данных для link_traversal().

Можно ли ссылаться на подзапрос select подобным образом при последующем вызове функции?

Комментарии:

1. Изучите общие табличные выражения. postgresql.org/docs/9.1/queries-with.html

2. @VynlJunkie Я не могу использовать предложение CTE, так как оно снижает производительность запроса, и ищу альтернативу. Я отредактировал вопрос, чтобы включить эту информацию.