在日常工作中,常常遇到多层嵌套子查询,这种结构可读性略差,采用with … as 结构能够极大
增加了sql的易读性,如果构造了多个子查询,结构会更清晰;更重要的是:“一次分析,多次使用”,这也是为什么会提供性能的地方,达到了“少读”的目标。
with a1 as
(select count(*) as total_cnts from AA),
a2 as (
select dis_area , count(*) as cnts from AA group by dis_area)
select a2.dis_area ,
a2.cnts ,
round(a2.cnts / a1.total_cnts ,4) * 100 || '%' as ratio from a1, a2;
但是如果不采用with … as 的结构,代码将会比这个结构复杂。