No te sabría decir una fuente.
Lo unico que tengo para decirte es que el secreto de entender esto, es conceptualizar que en bases de datos relacionales hay que pensar en un plano cartesiano. Cuando haces un
SELECT *FROM TABLA; verás que es la misma salida a la que tiene una salida de una consulta compleja con JOIN y funciones varias. Lo que hace postgresql y en general todos los rdbms es manejar estas salidas como tablas cargadas en memoria. fijate que tu consulta inicial la metí entre parentesis y le di un alias. A partir de ese momento, el resultado de esta consulta crea una tabla en memoria que puede ser accedida llamando los parametros de su interior que son nombrados por los alias.
Por ejemplo, mira este
ejemplo que dí hace unos pocos dias donde hago inner join con una tabla normal y el resultado de una consulta. Esto es perfectamente valido. Entendiendo esto, ya es cuestión de probar y abrir la mente ante posibles soluciones.
saludos