Lendo o manual do postgreSQL (8.4) descobri algo muito útil: a cláusula WITH.
Com ela você pode selecionar dados a partir de um outro select, algo como uma view "on the fly" ou uma tabela temporária, só se auto "destrói" após o uso. Já imaginei mil aplicações para isto, você consegue? Comentem...
Exemplo basicão:
WITH regional_sales AS ( SELECT region, SUM(amount) AS total_sales FROM orders GROUP BY region ), top_regions AS ( SELECT region FROM regional_sales WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales) ) SELECT region, product, SUM(quantity) AS product_units, SUM(amount) AS product_sales FROM orders WHERE region IN (SELECT region FROM top_regions) GROUP BY region, product;
Isto poderia ser escrito sem WITH, mas seria mais custoso pois precisaria de mais níveis de sub-selects.
Referência postgreSQL
Nenhum comentário:
Postar um comentário
Comenta aí galera, vamos debater os assuntos!