over 我也完全不懂,8i以下是不支持的搜索一下pongdali的帖子,有一个是讨论over的

解决方案 »

  1.   

    2。有一数据表如下
    id    money  sum
    1      30      30
    2      50      80
    3      10      90
    4      35      125
    5      25      150
    .
    如何通过sql语句计算sum列的值?money列的值已知,这一列的sum=上一列的sum+这一列的money值。
    不能写存储过程,用sql语句应该怎么写?select id,money,sum(money) over(order by id) from table_name------------------------------------------------------------
    分折函数实现此功能。如:
    SQL> select id from aa;ID
    --
    1
    2
    3
    4
    5
    6
    6
    SQL> select id,sum(id) over(order by id) from aa;结果
    ID SUM(ID)OVER(ORDERBYID)
    -- ----------------------
    1                       1
    2                       3
    3                       6
    4                      10
    5                      15
    6                      27
    6                      27问题:
    sum是必须的但可以是其他聚合函数吗??
    over里的order是什么意思??
      

  2.   

    http://expert.csdn.net/Expert/topic/1731/1731752.xml?temp=9.829348E-02
      

  3.   

    以下是分析函数的解释,要理解每一部分http://download-west.oracle.com/docs/cd/A87860_01/doc/server.817/a85397/function.htm#81409
      

  4.   

    总觉得照前面几位的说法,我实在不理解SUM()OVER()之类的语句有什么实际用途,能不能解释一下SELECT manager_id, last_name, hire_date, salary,
    AVG(salary) OVER (PARTITION BY manager_id ORDER BY hire_date
    ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS c_mavg
    FROM employees;
    是什么意思呢?