可以将子查询放在WITH子句中并在WITH子句的外部引用这些子查询,这就称为子查询因子化。
下面的例子在WITH自居中包含名为customer_purchases的子查询。该子查询检索顾客的ID并对他们购买的总金额进行汇总。
WITH自居外部的主查询返回customer_purchases子查询的结果集
WITH
customer_purchases AS(
SELECT
cu.custmoer_id,
SUM(pr.price * pu.quantity) AS purchase_total
FROM customers cu, purchases pu, products pr
WHERE cu.customer_id=pu.customer_id
AND pu.product_id=pr.product_id
group by cy.custmoer_id
)
SELECT * FROM customer_purchases ORDER BY custmoer_id;
网友评论