oracle last_value()over() 和first_value()over() 怎么使用
参数怎么写,内容是什么含意?
可不可以给我说说
谢谢了!

解决方案 »

  1.   

    这种东西百度一下很多的 
    呵呵http://blog.csdn.net/elimago/archive/2008/07/15/2656387.aspx再给个短点的
    http://hi.baidu.com/sonmeika/blog/item/9c5a24e9a83e9e3bb80e2dea.html
      

  2.   


    八. First,Last,First_value,Last_value取基数的分析函数
        First功能描述:从DENSE_RANK返回的集合中取出排在最前面的一个值的行(可能多行,因为值可能相等),因此完整的语法需要在开始处加上一个集合函数以从中取出记录。
        Last功能描述:从DENSE_RANK返回的集合中取出排在最后面的一个值的行(可能多行,因为值可能相等),因此完整的语法需要在开始处加上一个集合函数以从中取出记录。   FIRST_VALUE、LAST_VALUE:返回结果集中排在第一位和最后一位的值。     语法是:FIRST_VALUE (expr) OVER ( analytic_clause)/* FORMATTED ON 2009/11/10 20:51 (FORMATTER PLUS V4.8.8) */SELECT ENAME, DEPTNO, SAL,       MIN (SAL)KEEP (DENSE_RANK FIRST ORDER BY DEPTNO) OVER (PARTITION BY DEPTNO)  "Worst",       MAX (SAL)KEEP (DENSE_RANK LAST ORDER BY DEPTNO) OVER (PARTITION BY DEPTNO) "Best"  FROM SCOTT.EMP;
    ENAME
     DEPTNO
     SAL
     Worst
     Best
     
    CLARK
     10
     2,450
     1,300
     5,000
     
    KING
     10
     5,000
     1,300
     5,000
     
    MILLER
     10
     1,300
     1,300
     5,000
     
    JONES
     20
     2,975
     800
     3,000
     
    FORD
     20
     3,000
     800
     3,000
     
    ADAMS
     20
     1,100
     800
     3,000
     
    SMITH
     20
     800
     800
     3,000
     
    SCOTT
     20
     3,000
     800
     3,000
     
    WARD
     30
     1,250
     950
     2,850
     
    TURNER
     30
     1,500
     950
     2,850
     
    ALLEN
     30
     1,600
     950
     2,850
     
    JAMES
     30
     950
     950
     2,850
     
    BLAKE
     30
     2,850
     950
     2,850
     
    MARTIN
     30
     1,250
     950
     2,850
     /* Formatted on 2009/11/10 20:55 (Formatter Plus v4.8.8) */SELECT ENAME, DEPTNO, SAL,       FIRST_VALUE (ENAME) OVER (PARTITION BY DEPTNO ORDER BY SAL ASC) AS LOWEST_SAL  FROM SCOTT.EMP;
    ENAME
     DEPTNO
     SAL
     LOWEST_SAL
     
    MILLER
     10
     1,300
     MILLER
     
    CLARK
     10
     2,450
     MILLER
     
    KING
     10
     5,000
     MILLER
     
    SMITH
     20
     800
     SMITH
     
    ADAMS
     20
     1,100
     SMITH
     
    JONES
     20
     2,975
     SMITH
     
    FORD
     20
     3,000
     SMITH
     
    SCOTT
     20
     3,000
     SMITH
     
    JAMES
     30
     950
     JAMES
     
    MARTIN
     30
     1,250
     JAMES
     
    WARD
     30
     1,250
     JAMES
     
    TURNER
     30
     1,500
     JAMES
     
    ALLEN
     30
     1,600
     JAMES
     
    BLAKE
     30
     2,850
     JAMES
     
    更多有关分析函数的内容参考我的blog:
    Oracle 分析函数 
    http://blog.csdn.net/tianlesoftware/archive/2009/11/10/4795632.aspx------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    Q Q 群:62697716