zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Oracle-with c as (select ......) 实现多次调用子查询结果

Oracle 实现 查询 调用 with 结果 SELECT as
2023-09-11 14:19:36 时间

with c as  (select a.trandt,sum(a.tranam) tranam from tran a group by a.trandt )   #将子查询抽取出来,以后可以直接重复使用。该方法只适用于oracle,mysql不支持

select c.trandt, sum(d.tranam)
  from  c
 inner join c d
    on c.trandt >= d.trandt
 group by c.trandt
 
 
select c.trandt, sum(d.tranam)
  from (select a.trandt, sum(a.tranam) tranam
          from tran a
         group by a.trandt
         order by a.trandt) c
 inner join (select a.trandt, sum(a.tranam) tranam
               from tran a
              group by a.trandt
              order by a.trandt) d
    on c.trandt >= d.trandt
 group by c.trandt