Я хотел бы вызвать агрегатную функцию (стоимость) один раз для столбца и каскадировать ее через самостоятельные левые соединения (используется для создания перестановки или комбинации строк).Таким образом, я считаю, что стоимость - это O (n) для вызова после соединения O (строка ^ соединения).Начиная примерно так:
id | cost
----------
1 | 5
2 | 10
Я хотел бы сделать что-то похожее на ниже.Я могу сделать что-то подобное с выбором во временной таблице и соединением с ним, но Я бы хотел избежать использования временной таблицы ...
CREATE TEMP TABLE tmp_750309_plans AS (SELECT *, cost(id) as cost FROM plans WHERE plans.id IN (1,2,...));
SELECT * FROM tmp_750309_plans AS t1 LEFT JOIN tmp_750309_plans AS t2 ON ...
Я бы предпочел сделать что-токак:
SELECT id, cost(id) as cost FROM plans AS t1
LEFT JOIN t1 AS t2
ON t1.id != t2.id
AND ...
Чтобы получить что-то вроде этого:
id | cost | id | cost |
-----------------------
1 | 5 |NULL| NULL |
2 | 10 |3 | 15 |
Любая помощь будет принята с благодарностью.