- 浏览: 92281 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (139)
- oracle基础 (27)
- oracle sql编程及优化 (14)
- ELK (4)
- java (11)
- java设计模式 (0)
- 互联网知识 (6)
- 安装MongoDB (1)
- MongoDB (0)
- spark (1)
- scala (1)
- spring boot (3)
- spring cloud (8)
- redis (6)
- virtualbox (3)
- docker (7)
- rabbitmq (0)
- rocketmq (2)
- k8s (8)
- ubuntu (11)
- centos (3)
- mysql (4)
- nginx (7)
- tomcat (5)
- postman (1)
- other (10)
最新评论
-
lihao312:
insert all功能好强大哦 之前都没有用到过
oracle 多表插入 insert all 用法(即列转行)
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_VALUE 和LAST_VALUE 的功能,还可以取任意的正数或倒数
发表评论
文章已被作者锁定,不允许评论。
-
oracle rman
2014-06-30 15:14 4491. 检查数据库模式: sqlplus /nolog ... -
Oracle Scheduler Chain 的用法
2014-06-15 22:10 0Oracle CHAIN,也就是链,是将一串需要完成的作业连 ... -
oracle 热备脚本
2014-06-08 22:59 0oracle 热备脚本 -
表空间传输
2014-05-25 23:27 2042http://www.linuxidc.com/Linux ... -
sqlplus 基本命令
2014-05-21 18:01 577SQL> show all --查看所有68个系统变 ... -
undo 文件丢失的数据库恢复
2014-05-19 14:55 11621.连接数据库 sqlplus /nolog con ... -
oracle日志文件损坏时,用隐含参数启动:_allow_resetlogs_corruption
2014-05-17 10:06 1474Oracle隐含参数:_allow_resetlogs_c ... -
Oracle TYPE OBJECT 用法
2012-11-05 15:46 0Oracle TYPE OBJECT 用法 -
如何降低Oracle表的高水位
2012-11-05 15:39 0如何降低Oracle表的高水位 -
Oracle外部表
2012-11-06 17:10 588转载:Oracle外部表4 Oracle外 ... -
ORACLE删除重复记录方法
2012-11-05 15:32 0转载:ORACLE删除重复记录方法 -
oracle table()函数用法
2012-11-05 15:31 0转载:oracle table()函数用法 -
关于Oracle建物化视图的总结
2012-11-05 15:31 0转载:关于Oracle建物化视图的总结 -
全面学习ORACLE Scheduler特性
2012-11-05 15:58 592转载:全面学习ORACLE Scheduler特性 -
WITH子句与未公开HINT MATERIALIZE联合使用, 取代临时表
2012-11-05 15:11 0转载:WITH子句与未公开HINT MATERIALIZE联 ... -
如何找回Oracle数据库初始化密码
2012-11-05 15:03 0转载:如何找回Oracle数据库初始化密码 -
ORACLE EXP和IMP浅谈
2012-11-05 15:03 0转载:ORACLE EXP和IMP浅谈 oracl ... -
Oracle SQL Loader
2012-11-05 14:55 0引用:Oracle SQL Loader -
oracle flashback介绍
2012-11-05 16:01 697引用:Flashback Table之RECYCLEBIN ... -
oracle v$视图
2012-10-26 14:16 0v$locked_object 查看锁定的会话 ...
相关推荐
### Oracle分析函数:`FIRST_VALUE()`和`LAST_VALUE()` #### `FIRST_VALUE()`函数 `FIRST_VALUE()`函数返回在一个窗口函数中定义的顺序下,指定列的首个值。这通常用于返回一个分组内按照某种顺序(如按时间、数值...
Oracle 分析函数是 Oracle 数据库中的一种强大功能,能够帮助用户快速进行数据分析和处理。在本文中,我们将对 Oracle 分析函数进行详细的介绍,并对其各个函数进行解释。 一、总体介绍 Oracle 分析函数的语法...
除了这些,Oracle分析函数还包括RANK、DENSE_RANK、ROW_NUMBER等排名函数,LEAD和LAG用于获取当前行之前或之后的值,FIRST_VALUE和LAST_VALUE则返回窗口内的第一个或最后一个值,以及NTILE用于将数据分桶等。...
Oracle中的分析函数主要包括RANK()、DENSE_RANK()、ROW_NUMBER()用于排名,LEAD()和LAG()用于获取当前行前后行的值,FIRST_VALUE()和LAST_VALUE()用于获取分区的第一行和最后一行的值,以及SUM()、AVG()、MIN()、MAX...
5. FIRST_VALUE() / LAST_VALUE():返回指定列的第一个或最后一个值,无论在哪个行位置。 6. AVG() / SUM() / MAX() / MIN():这些聚合函数在分析上下文中也可以用作分析函数,返回每个分区的平均值、总和、最大值或...
- `FIRST_VALUE()`, `LAST_VALUE()`: 获取窗口内的第一个或最后一个值。 4. **分位数函数**: - `NTILE()`: 将结果集分割成n个相等的部分,返回每个行所在的部分编号。 在使用分析函数时,`OVER()`子句是至关...
Oracle 分析函数是数据库查询中的强大工具,它们允许在单个SQL语句中对结果集进行复杂的计算和分组操作,极大地简化了数据分析的过程。在Oracle 8i版本之后引入,分析函数为处理大量数据提供了高效的方法,避免了...
3. **First/Last排名查询**:使用`FIRST_VALUE`或`LAST_VALUE`函数获取第一行或最后一行的值。 4. **按层次查询**:通过嵌套等级函数来实现多层次的排名和分组。 #### 五、窗口函数详解 窗口函数能够对数据集的...
这些函数极大地增强了数据分析和报告的能力,提高了查询性能。以下是对Oracle分析函数的详细说明,以及如何使用它们。 1. 自动汇总(ROLLUP, CUBE) ROLLUP用于生成数据的多级汇总,从最细粒度到最粗粒度。例如,...
- 首尾函数:`FIRST_VALUE()`, `LAST_VALUE()`,返回指定列的首行或尾行值。 - 移动聚合函数:`SUM()`, `AVG()`, `MIN()`, `MAX()`等,在分析窗口内进行聚合计算。 - 移动平均:如`LEAD()`, `LAG()`, `CUME_DIST...
在本篇中,我们将深入探讨几个关键的分析函数,包括AVG、SUM、COUNT、FIRST_VALUE、LAST_VALUE、LAG和LEAD。 1. AVG([DISTINCT|ALL] expr) OVER(analytic_clause) AVG函数用于计算平均值,分为聚合函数和分析函数...
Oracle的分析函数还包括`ROW_NUMBER`, `RANK`, `DENSE_RANK`用于行号分配,`LEAD`, `LAG`用于获取前后行数据,`FIRST_VALUE`, `LAST_VALUE`获取窗口范围内的第一个或最后一个值,以及`NTILE`进行分桶等。这些函数在...
7. **FIRST_VALUE** 和 **LAST_VALUE**: 分别返回组内数据窗口的第一行和最后一行的值。 8. **LAG** 和 **LEAD**: LAG获取前一行的值,LEAD获取后一行的值,两者都用于访问数据窗口中的其他行。 **行号和分布函数**...
Oracle分析函数是数据库管理系统Oracle中一组强大的工具,主要用于处理复杂的报表和数据分析任务。它们与聚合函数(如SUM, AVG, MAX, MIN)不同,因为分析函数不仅能够对数据进行分组统计,还能在每个分组内为每一行...
1、oracle分析函数 中文: 主要含: rank() 和 dense_rank() first_value()和last_value() row_number() LAG() range开窗函数 2、oracle分析函数 英文: 比较详细
- FIRST_VALUE()和LAST_VALUE():返回窗口内的第一行或最后一行的值。 - AVG()、SUM()、COUNT()等:当与OVER()子句结合使用时,可以在每个分组内进行累积或分区聚合。 3. 分析函数的使用语法: 分析函数通常与...
了解和熟练使用Oracle分析函数,对于数据库查询优化、复杂数据分析和报表生成都至关重要。通过深入学习和实践,开发者能够更好地利用这些功能,提高SQL查询的效率和灵活性。参考书籍如《expert one-on-one》Tom Kyte...