How to code a subquery factoring clause

Subquery factoring allows you to name a block of code that contains a SELECT statement.

 

  • A subquery factoring clause can be thought of as a named subquery block. This name can then be used multiple times in the query.
  • To define a subquery factoring block, your code the WITH keyword followed by the definition of the subquery.
  • To code multiple subquery factoring clauses, separate them with commas. Then, each clause can refer to itself and any previously defined subquery factoring clauses in the same WITH clauses.
  • You can use subquery factoring clauses with SELECT, INSERT, UPDATE, and DELETE statements. However, you're most likely to use them with SELECT statements.

The syntax of a subquery factoring clause


 

Two query names and a query that uses them

with summary as
(
     select vendor_state, vendor_name, sum(invoice_total) as sum_of_invoices
     from invoices i, vendors v
     where i.vendor_id = v.vendor_id
     group by vendor_state, vendor_name
),
top_in_state as
(
     select vendor_state, max(sum_of_invoices) as sum_of_invoices
     from summary
     group by vendor_state
)
select s.vendor_state, s.vendor_name, t.sum_of_invoices
from summary s, top_in_state t
where s.vendor_state = t.vendor_state and s.sum_of_invoices = t.sum_of_invoices
order by s.vendor_state;

 

The result set

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值