Faça loops dentro da query - Lateral Join no PostgreSQL
Serve para transformar isso:
select(pledged / fx_rate) as pledged_usd, (pledged / fx_rate) / backers_count as avg_pledge_usd, (goal / fx_rate) - (pledged / fx_rate) as amt_from_goal, (deadline - launched_at) / 86400.00 as duration, ((goal / fx_rate) - (pledged / fx_rate)) / ((deadline - launched_at) / 86400.00) as usd_needed_daily from kickstarter_data;
Nisso:
selectpledged_usd, avg_pledge_usd, amt_from_goal, duration, (usd_from_goal / duration) as usd_needed_daily from kickstarter_data, lateral (select pledged / fx_rate as pledged_usd) pu, lateral (select pledged_usd / backers_count as avg_pledge_usd) apu, lateral (select goal / fx_rate as goal_usd) gu, lateral (select goal_usd - pledged_usd as usd_from_goal) ufg, lateral (select (deadline - launched_at)/86400.00 as duration) dr;
Referências
Como usar Lateral Join no PostgreSQL?
https://popsql.com/learn-sql/postgresql/how-to-use-lateral-joins/
Documentação PostgreSQL
https://www.postgresql.org/docs/current/queries-table-expressions.html#QUERIES-LATERAL