#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, так как оно снижает производительность запроса, и ищу альтернативу. Я отредактировал вопрос, чтобы включить эту информацию.