在此SQL函数中,我只想调用一次返回表值函数的函数
CREATE OR REPLACE FUNCTION get_active(p_id UUID)
RETURNS TABLE
(
id UUID,
date TIMESTAMP WITH TIME ZONE
)
AS $$
SELECT f1.id,
f1.date
FROM get_records(p_id) f1
WHERE f1.date =
(
SELECT max(f2.date)
FROM get_records(p_id) f2
);
$$ LANGUAGE sql;
我想通过某种方式存储get_records(p_id)的结果来优化此SQL,但是由于Postgres中没有表变量的概念,因此我很难做到这一点