商品     销售数量
a           1
b           3
c           4
d           2希望得到的结果是最后增加一列,是所有商品销量的合计,尽量不要关联子查询商品    销售数量     合计 
a           1               10
b           3                10
c           4                10
d           2                10

解决方案 »

  1.   


    with a  as 
    (select 'a' col1,1 col2 from dual 
    union all
    select 'b' col1,3 col2 from dual 
    union all
    select 'c' col1,4 col2 from dual 
    union all
    select 'd' col1,2 col2 from dual 
    )
    select col1,col2,res from a,(select sum(col2) res from a)
      

  2.   

    select  a.*,b.hj from a cross jion (select sum(a.bb) as hj from a) b
      

  3.   

    直接用sum() over()
    with a  as 
    (select 'a' col1,1 col2 from dual 
    union all
    select 'b' col1,3 col2 from dual 
    union all
    select 'c' col1,4 col2 from dual 
    union all
    select 'd' col1,2 col2 from dual 
    )
    select col1,col2,sum(col2) over() from a
      

  4.   

    with temp as
    (select 'a'goods, l nums
    from dual
    union all
    select 'b' goods, 2 nums
    from dual
    union all
    select 'c' goods, 3 nums
    from dual
    union all
    select 'd' goods, 4 nums
    from dual)
    select goods商品
    nums 销售数量
    Sum(nums)over( order by1)合计
    from temp;