FIRST_VALUE 功能描述:返回组中数据窗口的第一个值。有些类似于SQL Server中的first(),但用法完全不一样,而功能也强大一些。
SQL> create table EMP(
id number,
name varchar2(20),
age number,
POS VARCHAR2(20)
);
SQL> alter table EMP
add constraint emp_PK_id primary key (ID);
...
SQL> SELECT * FROM EMP;
ID NAME AGE POS
1 A 25 PM
2 B 20 PM
3 C 30 PL
4 D 35 PL
5 E 36 PL
需求:求出每种职位的平均年龄,同时列出每种职位的年龄最大和最小者。
SQL> SELECT DISTINCT
FIRST_VALUE(NAME) OVER
(PARTITION BY POS ORDER BY AGE DESC)
AS MAXAGE_NAME
,FIRST_VALUE(NAME) OVER
(PARTITION BY POS ORDER BY AGE ASC)
AS MINAGE_NAME
,AVG(AGE) OVER
(PARTITION BY POS)
AS AVG_AGE
,POS
FROM EMP
ORDER BY POS
MAXAGE_NAME MINAGE_NAME AVG_AGE POS
E C 33.66666667 PL
A B 22.5 PM
SQL> create table EMP(
id number,
name varchar2(20),
age number,
POS VARCHAR2(20)
);
SQL> alter table EMP
add constraint emp_PK_id primary key (ID);
...
SQL> SELECT * FROM EMP;
ID NAME AGE POS
1 A 25 PM
2 B 20 PM
3 C 30 PL
4 D 35 PL
5 E 36 PL
需求:求出每种职位的平均年龄,同时列出每种职位的年龄最大和最小者。
SQL> SELECT DISTINCT
FIRST_VALUE(NAME) OVER
(PARTITION BY POS ORDER BY AGE DESC)
AS MAXAGE_NAME
,FIRST_VALUE(NAME) OVER
(PARTITION BY POS ORDER BY AGE ASC)
AS MINAGE_NAME
,AVG(AGE) OVER
(PARTITION BY POS)
AS AVG_AGE
,POS
FROM EMP
ORDER BY POS
MAXAGE_NAME MINAGE_NAME AVG_AGE POS
E C 33.66666667 PL
A B 22.5 PM
发表评论
-
oracle定时删除表空间的数据并释放表空间
2009-10-13 16:53 2615这两天我一个朋友问我 ... -
oracle定时任务(dbms_job)
2009-10-13 16:50 2301今天总结下oracle的任务队列管理器(job queue ) ... -
Decode函数的语法
2009-10-13 16:47 989Decode函数的语法结构如下: decode (expre ... -
Oracle 中truncate与delete的区别
2009-10-13 16:27 1025Oracle 中truncate与delete的区别 收藏 ... -
数据库---存储过程总结
2009-10-13 16:20 947定义: ... -
oracle执行计划的理解
2009-10-13 16:12 737执行计划的理解 计信息 ------------------ ... -
oracle定时添加或删除分区表的分区
2009-10-13 16:11 2081这几天,根据业务的需求和性能的考虑,需要定时删除历史数据,表里 ... -
Oracle常用数据字典表
2009-09-16 09:00 1106查看当前用户的缺省表空间 SQL>select us ... -
关于SQL中的“\”的转义
2009-05-30 08:23 948select ename from myemp where e ... -
Oracle存储过程学习(2)
2009-05-11 08:05 1145存储过程创建语法: create or rep ... -
ora-12154 TNS:"无法处理服务名"的一个解决方法
2009-04-13 15:48 1449很怪异的一个问题,在网络环境下配置客户端,竟然怎么也连不上主机 ... -
触发器
2009-02-10 20:27 1018触发器 触发器是指被隐含执行的存储过程,当发生特定事件(例如修 ... -
Oracle 包
2009-02-06 20:08 1206包 包用于逻辑组合相关的PL/SQL类型、项、子程序,它由包 ... -
函数的纯度级别以及使用
2009-02-05 16:09 944函数的纯度级别以及使用 - 定义由函数读取或修改的数据种类。 ... -
管理存储过程和函数
2009-02-05 10:47 743管理存储过程和函数 1.列出当前用户的子程序 SQL>c ... -
Oracle 自定义函数
2009-02-04 14:49 3622函数 函数用于返回特定数据。执行时得找一个变量接收函数的返回值 ... -
Oracle存储过程
2009-02-04 11:05 1044Oracle存储过程 存储过程不仅可以简化客户端应用程序的开发 ... -
PL/SQL DEVELOPER 基本用法详解
2009-02-03 10:37 2369一.编辑表数据(浏览表 ... -
游标(二)
2009-02-02 16:14 825游标FOR循环 游标FOR循环是游标使用的最简单的方式,当使用 ... -
游标(一)
2009-02-01 15:28 812使用游标 当在pl/sql块中 ...
相关推荐
### Oracle分析函数:`FIRST_VALUE()`和`LAST_VALUE()` #### `FIRST_VALUE()`函数 `FIRST_VALUE()`函数返回在一个窗口函数中定义的顺序下,指定列的首个值。这通常用于返回一个分组内按照某种顺序(如按时间、数值...
FIRST_VALUE 函数用于获取一个组的第一个值。 3.9 LAG 函数 LAG 函数用于访问之前的行。 3.10 LAST_VALUE 函数 LAST_VALUE 函数用于获取一个组的最后一个值。 3.11 LEAD 函数 LEAD 函数用于访问之后的行。 ...
3. **First/Last排名查询**:使用`FIRST_VALUE`或`LAST_VALUE`函数获取第一行或最后一行的值。 4. **按层次查询**:通过嵌套等级函数来实现多层次的排名和分组。 #### 五、窗口函数详解 窗口函数能够对数据集的...
- 使用FIRST_VALUE函数获取窗口内某个字段的特定值。 Oracle分析函数是非常强大的工具,它们在处理报表、大数据分析、复杂查询等方面提供了极大的灵活性和能力。通过使用分析函数,可以轻松实现复杂的计算,而不必...
除了这些,Oracle分析函数还包括RANK、DENSE_RANK、ROW_NUMBER等排名函数,LEAD和LAG用于获取当前行之前或之后的值,FIRST_VALUE和LAST_VALUE则返回窗口内的第一个或最后一个值,以及NTILE用于将数据分桶等。...
- 首尾函数:`FIRST_VALUE()`, `LAST_VALUE()`,返回指定列的首行或尾行值。 - 移动聚合函数:`SUM()`, `AVG()`, `MIN()`, `MAX()`等,在分析窗口内进行聚合计算。 - 移动平均:如`LEAD()`, `LAG()`, `CUME_DIST...
- `FIRST_VALUE()`, `LAST_VALUE()`: 获取窗口内的第一个或最后一个值。 4. **分位数函数**: - `NTILE()`: 将结果集分割成n个相等的部分,返回每个行所在的部分编号。 在使用分析函数时,`OVER()`子句是至关...
Oracle分析函数是数据库查询中非常强大的工具,它们用于处理复杂的报表和统计需求,特别是在在线分析处理(OLAP)环境中。分析函数与聚合函数的主要区别在于,聚合函数对每个组只返回一行结果,而分析函数则可以针对...
6. **FIRST_VALUE() 和 LAST_VALUE() 函数** - **FIRST_VALUE()** 返回指定列的第一个值,不管其在数据集中的位置如何。 - **LAST_VALUE()** 返回指定列的最后一个值,同样无视其原始排序。 这些分析函数在处理...
Oracle数据库中的常用函数是数据库管理员和开发人员在处理数据时不可或缺的工具。这些函数极大地提高了数据处理的效率和灵活性。以下是一些常见的Oracle分析函数及其用法: 1. **开窗函数(Over)**: 开窗函数允许...
这使得分析函数在处理具有层次结构或时间序列数据时特别有用。 1. 认识分析函数 分析函数的核心在于`OVER()`函数,它可以指定分组(PARTITION BY)、排序(ORDER BY)以及窗口范围(ROWS BETWEEN)。通过这些子句,...
6. FIRST_VALUE和LAST_VALUE 这些函数返回指定列的第一个或最后一个值,即使在分组或排序后。这在处理基线值或跟踪趋势时非常有用。 例如,假设我们有一个销售数据表,包含产品、销售日期和销售额。我们可以使用...
Oracle的分析函数还包括`ROW_NUMBER`, `RANK`, `DENSE_RANK`用于行号分配,`LEAD`, `LAG`用于获取前后行数据,`FIRST_VALUE`, `LAST_VALUE`获取窗口范围内的第一个或最后一个值,以及`NTILE`进行分桶等。这些函数在...
Oracle函数在数据库查询和数据分析中扮演着至关重要的角色,尤其是一些著名的分析函数,它们能够帮助我们进行复杂的统计计算和数据处理。在本篇中,我们将深入探讨几个关键的分析函数,包括AVG、SUM、COUNT、FIRST_...
5. FIRST_VALUE() / LAST_VALUE():返回指定列的第一个或最后一个值,无论在哪个行位置。 6. AVG() / SUM() / MAX() / MIN():这些聚合函数在分析上下文中也可以用作分析函数,返回每个分区的平均值、总和、最大值或...
6. **分析函数**:分析函数在处理大量数据时非常有用,如`RANK`、`DENSE_RANK`和`ROW_NUMBER`用于生成行序号,`LEAD`和`LAG`可以访问当前行的前一行或后一行数据,`FIRST_VALUE`和`LAST_VALUE`则用于获取分组内第一...
Oracle分析函数是数据库管理系统Oracle中的一种高级特性,用于对数据集进行分析操作,提供了一种高效、简洁的方式来处理复杂的数据分析任务。分析函数在Oracle 8i版本中首次引入,极大地简化了之前需要通过自连接、...
- `FIRST_VALUE/LAST_VALUE`:返回分组内第一行或最后一行的值。 8. **系统信息函数**: - `USER`:返回当前用户的名称。 - `DBMS_METADATA`:获取数据库对象的元数据信息。 - `V$SESSION`,`V$INSTANCE`:查看...