1:统计某商店的营业额。        
     date       sale
     1           20
     2           15
     3           14
     4           18
     5           30
    规则:按天统计:每天都统计前面几天的总额
    得到的结果:
    DATE   SALE       SUM
    ----- -------- ------
    1      20        20           --1天           
    2      15        35           --1天+2天           
    3      14        49           --1天+2天+3天           
    4      18        67            .          
    5      30        97            .这个语句怎么写?怎么用over(partition by)实现?

解决方案 »

  1.   


    SQL> select * from a;
     
         DATE1       SALE
    ---------- ----------
             1         20
             2         15
             3         14
             4         18
             5         30
     
    SQL> 
    SQL> select date1,sale,
      2  sum(sale) over(order by date1) sum
      3  from a;
     
         DATE1       SALE        SUM
    ---------- ---------- ----------
             1         20         20
             2         15         35
             3         14         49
             4         18         67
             5         30         97
     
      

  2.   

    select t.date, 
    sum(t.sale) over( order by  date range unbounded preceding) "累计值"
    from test_new t