`

oracle 分析函数之first_value和last_value

 
阅读更多

first_value函数返回结果集中排在第一位的值

语法:first_value(expression) over(partition-clause order-by-clause windowing-clause)

 

建表语句:

create table SMALL_CUSTOMERS(CUSTOMER_ID NUMBER,SUM_ORDERS  NUMBER);   
insert into SMALL_CUSTOMERS (CUSTOMER_ID, SUM_ORDERS) values (1000, 10);   
insert into SMALL_CUSTOMERS (CUSTOMER_ID, SUM_ORDERS) values (1000, 20);   
insert into SMALL_CUSTOMERS (CUSTOMER_ID, SUM_ORDERS) values (1000, 30);   
insert into SMALL_CUSTOMERS (CUSTOMER_ID, SUM_ORDERS) values (800, 5);   
insert into SMALL_CUSTOMERS (CUSTOMER_ID, SUM_ORDERS) values (800, 10);   
insert into SMALL_CUSTOMERS (CUSTOMER_ID, SUM_ORDERS) values (800, 1);  

 

first_value具体用法如下:

select customer_id,
       sum_orders,
       first_value(sum_orders) over(partition by customer_id order by sum_orders)
  from small_customers;

 


last_value函数返回结果集中排在最后一位的值

select customer_id,
       sum_orders,
       last_value(sum_orders) over(partition by customer_id order by sum_orders 
       ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
  from small_customers;

 

注:ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 必需要,否则结果如下:


 

UNBOUNDED PRECEDING 表示从第一行开始,UNBOUNDED FOLLOWING 表示到最后一行,current row表示当前行

具体用法如下:

select customer_id,
       sum_orders,
       sum(sum_orders) over(order by sum_orders 
          rows between unbounded preceding and current row) current_sum,
       sum(sum_orders) over(order by sum_orders 
          rows between unbounded preceding and unbounded following) total_sum
  from small_customers;

 

在11g中,oracle新增了一个NTH_VALUE 函数,这个功能包含了FIRST_VALUELAST_VALUE 的功能,还可以取任意的正数或倒数

 

 

  • 大小: 47 KB
  • 大小: 47.8 KB
  • 大小: 37.5 KB
  • 大小: 35.7 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Oracle 高级查询之分析函数部分--first_value,last_value

    ### Oracle分析函数:`FIRST_VALUE()`和`LAST_VALUE()` #### `FIRST_VALUE()`函数 `FIRST_VALUE()`函数返回在一个窗口函数中定义的顺序下,指定列的首个值。这通常用于返回一个分组内按照某种顺序(如按时间、数值...

    Oracle分析函数

    Oracle 分析函数是 Oracle 数据库中的一种强大功能,能够帮助用户快速进行数据分析和处理。在本文中,我们将对 Oracle 分析函数进行详细的介绍,并对其各个函数进行解释。 一、总体介绍 Oracle 分析函数的语法...

    ORACLE_分析函数大全

    除了这些,Oracle分析函数还包括RANK、DENSE_RANK、ROW_NUMBER等排名函数,LEAD和LAG用于获取当前行之前或之后的值,FIRST_VALUE和LAST_VALUE则返回窗口内的第一个或最后一个值,以及NTILE用于将数据分桶等。...

    深入浅出Oracle分析函数

    Oracle中的分析函数主要包括RANK()、DENSE_RANK()、ROW_NUMBER()用于排名,LEAD()和LAG()用于获取当前行前后行的值,FIRST_VALUE()和LAST_VALUE()用于获取分区的第一行和最后一行的值,以及SUM()、AVG()、MIN()、MAX...

    Oracle中的分析函数详解

    5. FIRST_VALUE() / LAST_VALUE():返回指定列的第一个或最后一个值,无论在哪个行位置。 6. AVG() / SUM() / MAX() / MIN():这些聚合函数在分析上下文中也可以用作分析函数,返回每个分区的平均值、总和、最大值或...

    ORACLE分析函数大全

    - `FIRST_VALUE()`, `LAST_VALUE()`: 获取窗口内的第一个或最后一个值。 4. **分位数函数**: - `NTILE()`: 将结果集分割成n个相等的部分,返回每个行所在的部分编号。 在使用分析函数时,`OVER()`子句是至关...

    Oracle 分析函数.doc

    Oracle 分析函数是数据库查询中的强大工具,它们允许在单个SQL语句中对结果集进行复杂的计算和分组操作,极大地简化了数据分析的过程。在Oracle 8i版本之后引入,分析函数为处理大量数据提供了高效的方法,避免了...

    Oracle_详解分析函数

    3. **First/Last排名查询**:使用`FIRST_VALUE`或`LAST_VALUE`函数获取第一行或最后一行的值。 4. **按层次查询**:通过嵌套等级函数来实现多层次的排名和分组。 #### 五、窗口函数详解 窗口函数能够对数据集的...

    ORACLE分析函数.pdf

    这些函数极大地增强了数据分析和报告的能力,提高了查询性能。以下是对Oracle分析函数的详细说明,以及如何使用它们。 1. 自动汇总(ROLLUP, CUBE) ROLLUP用于生成数据的多级汇总,从最细粒度到最粗粒度。例如,...

    oracle分析函数.doc

    - 首尾函数:`FIRST_VALUE()`, `LAST_VALUE()`,返回指定列的首行或尾行值。 - 移动聚合函数:`SUM()`, `AVG()`, `MIN()`, `MAX()`等,在分析窗口内进行聚合计算。 - 移动平均:如`LEAD()`, `LAG()`, `CUME_DIST...

    oracle函数介绍(6) 著名函数之分析函数.doc

    在本篇中,我们将深入探讨几个关键的分析函数,包括AVG、SUM、COUNT、FIRST_VALUE、LAST_VALUE、LAG和LEAD。 1. AVG([DISTINCT|ALL] expr) OVER(analytic_clause) AVG函数用于计算平均值,分为聚合函数和分析函数...

    oracle 分析函数学习笔记

    Oracle的分析函数还包括`ROW_NUMBER`, `RANK`, `DENSE_RANK`用于行号分配,`LEAD`, `LAG`用于获取前后行数据,`FIRST_VALUE`, `LAST_VALUE`获取窗口范围内的第一个或最后一个值,以及`NTILE`进行分桶等。这些函数在...

    Oracle分析函数.doc

    7. **FIRST_VALUE** 和 **LAST_VALUE**: 分别返回组内数据窗口的第一行和最后一行的值。 8. **LAG** 和 **LEAD**: LAG获取前一行的值,LEAD获取后一行的值,两者都用于访问数据窗口中的其他行。 **行号和分布函数**...

    ORACLE_培训之_分析函数

    Oracle分析函数是数据库管理系统Oracle中一组强大的工具,主要用于处理复杂的报表和数据分析任务。它们与聚合函数(如SUM, AVG, MAX, MIN)不同,因为分析函数不仅能够对数据进行分组统计,还能在每个分组内为每一行...

    Oracle分析函数中文+英文【英文非中文的配套】

    1、oracle分析函数 中文: 主要含: rank() 和 dense_rank() first_value()和last_value() row_number() LAG() range开窗函数 2、oracle分析函数 英文: 比较详细

    oracle分析函数

    - FIRST_VALUE()和LAST_VALUE():返回窗口内的第一行或最后一行的值。 - AVG()、SUM()、COUNT()等:当与OVER()子句结合使用时,可以在每个分组内进行累积或分区聚合。 3. 分析函数的使用语法: 分析函数通常与...

    Oracle分析函数手册

    了解和熟练使用Oracle分析函数,对于数据库查询优化、复杂数据分析和报表生成都至关重要。通过深入学习和实践,开发者能够更好地利用这些功能,提高SQL查询的效率和灵活性。参考书籍如《expert one-on-one》Tom Kyte...

Global site tag (gtag.js) - Google Analytics