找回密码
 立即注册

QQ登录

只需一步,快速开始

WantSong

高级会员

65

主题

78

帖子

1113

积分

高级会员

积分
1113

活字格认证

WantSong
高级会员   /  发表于:2009-12-14 11:31  /   查看:7370  /  回复:0
[size=-1]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;

IDNAMEAGEPOS
1A25PM
2B20PM
3C30PL

4D35PL
5E36PL
需求:求出每种职位的平均年龄,同时列出每种职位的年龄最大和最小者。
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_NAMEMINAGE_NAMEAVG_AGEPOS

EC33.66666667PL

AB22.5PM

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部