<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FAnalytical_Functions%2FRange</id>
		<title>Oracle PL/SQL/Analytical Functions/Range - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FAnalytical_Functions%2FRange"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Analytical_Functions/Range&amp;action=history"/>
		<updated>2026-05-14T14:45:22Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/Analytical_Functions/Range&amp;diff=1444&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Analytical_Functions/Range&amp;diff=1444&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/Analytical_Functions/Range&amp;diff=1445&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Analytical_Functions/Range&amp;diff=1445&amp;oldid=prev"/>
				<updated>2010-05-26T09:56:06Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==count(*) over partition, order by, range unbounded preceding for employee table==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,&lt;br /&gt;
  2                    ENAME VARCHAR2(10),&lt;br /&gt;
  3                    JOB VARCHAR2(9),&lt;br /&gt;
  4                    MGR NUMBER(4),&lt;br /&gt;
  5                    HIREDATE DATE,&lt;br /&gt;
  6                    SAL NUMBER(7, 2),&lt;br /&gt;
  7                    COMM NUMBER(7, 2),&lt;br /&gt;
  8                    DEPTNO NUMBER(2));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7369, &amp;quot;SMITH&amp;quot;, &amp;quot;CLERK&amp;quot;,    7902, TO_DATE(&amp;quot;17-DEC-1980&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 800, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7499, &amp;quot;ALLEN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;20-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1600, 300, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7521, &amp;quot;WARD&amp;quot;,  &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;22-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 500, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7566, &amp;quot;JONES&amp;quot;, &amp;quot;MANAGER&amp;quot;,  7839, TO_DATE(&amp;quot;2-APR-1981&amp;quot;,  &amp;quot;DD-MON-YYYY&amp;quot;), 2975, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7654, &amp;quot;MARTIN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;28-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 1400, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7698, &amp;quot;BLAKE&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;1-MAY-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2850, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7782, &amp;quot;CLARK&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;9-JUN-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2450, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7788, &amp;quot;SCOTT&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;09-DEC-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7839, &amp;quot;KING&amp;quot;, &amp;quot;PRESIDENT&amp;quot;, NULL,TO_DATE(&amp;quot;17-NOV-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 5000, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7844, &amp;quot;TURNER&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;8-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1500, 0, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7876, &amp;quot;ADAMS&amp;quot;, &amp;quot;CLERK&amp;quot;, 7788,TO_DATE(&amp;quot;12-JAN-1983&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1100, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7900, &amp;quot;JAMES&amp;quot;, &amp;quot;CLERK&amp;quot;, 7698,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 950, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7902, &amp;quot;FORD&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7934, &amp;quot;MILLER&amp;quot;, &amp;quot;CLERK&amp;quot;, 7782,TO_DATE(&amp;quot;23-JAN-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1300, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from emp;&lt;br /&gt;
   EMPNO ENAME      JOB            MGR HIREDATE       SAL     COMM DEPTNO&lt;br /&gt;
-------- ---------- --------- -------- --------- -------- -------- ------&lt;br /&gt;
 7369.00 SMITH      CLERK      7902.00 17-DEC-80   800.00              20&lt;br /&gt;
 7499.00 ALLEN      SALESMAN   7698.00 20-FEB-81  1600.00   300.00     30&lt;br /&gt;
 7521.00 WARD       SALESMAN   7698.00 22-FEB-81  1250.00   500.00&lt;br /&gt;
 7566.00 JONES      MANAGER    7839.00 02-APR-81  2975.00              20&lt;br /&gt;
 7654.00 MARTIN     SALESMAN   7698.00 28-SEP-81  1250.00  1400.00     30&lt;br /&gt;
 7698.00 BLAKE      MANAGER    7839.00 01-MAY-81  2850.00&lt;br /&gt;
 7782.00 CLARK      MANAGER    7839.00 09-JUN-81  2450.00              10&lt;br /&gt;
   EMPNO ENAME      JOB            MGR HIREDATE       SAL     COMM DEPTNO&lt;br /&gt;
-------- ---------- --------- -------- --------- -------- -------- ------&lt;br /&gt;
 7788.00 SCOTT      ANALYST    7566.00 09-DEC-82  3000.00              20&lt;br /&gt;
 7839.00 KING       PRESIDENT          17-NOV-81  5000.00              10&lt;br /&gt;
 7844.00 TURNER     SALESMAN   7698.00 08-SEP-81  1500.00      .00     30&lt;br /&gt;
 7876.00 ADAMS      CLERK      7788.00 12-JAN-83  1100.00              20&lt;br /&gt;
 7900.00 JAMES      CLERK      7698.00 03-DEC-81   950.00              30&lt;br /&gt;
&lt;br /&gt;
   EMPNO ENAME      JOB            MGR HIREDATE       SAL     COMM DEPTNO&lt;br /&gt;
-------- ---------- --------- -------- --------- -------- -------- ------&lt;br /&gt;
 7902.00 FORD       ANALYST    7566.00 03-DEC-81  3000.00              20&lt;br /&gt;
 7934.00 MILLER     CLERK      7782.00 23-JAN-82  1300.00              10&lt;br /&gt;
&lt;br /&gt;
14 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from ( select deptno, ename, sal,&lt;br /&gt;
  2                  count(*) over ( partition by deptno&lt;br /&gt;
  3                                      order by sal desc, ename&lt;br /&gt;
  4                                      range unbounded preceding ) cnt&lt;br /&gt;
  5             from emp )&lt;br /&gt;
  6    where cnt &amp;lt;= 3&lt;br /&gt;
  7    order by deptno, sal desc&lt;br /&gt;
  8  /&lt;br /&gt;
DEPTNO ENAME           SAL      CNT&lt;br /&gt;
------ ---------- -------- --------&lt;br /&gt;
    10 KING        5000.00     1.00&lt;br /&gt;
       CLARK       2450.00     2.00&lt;br /&gt;
       MILLER      1300.00     3.00&lt;br /&gt;
    20 FORD        3000.00     1.00&lt;br /&gt;
       SCOTT       3000.00     2.00&lt;br /&gt;
       JONES       2975.00     3.00&lt;br /&gt;
    30 BLAKE       2850.00     1.00&lt;br /&gt;
       ALLEN       1600.00     2.00&lt;br /&gt;
       TURNER      1500.00     3.00&lt;br /&gt;
9 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==first_value order by range between preceding and following==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set echo on&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,&lt;br /&gt;
  2                    ENAME VARCHAR2(10),&lt;br /&gt;
  3                    JOB VARCHAR2(9),&lt;br /&gt;
  4                    MGR NUMBER(4),&lt;br /&gt;
  5                    HIREDATE DATE,&lt;br /&gt;
  6                    SAL NUMBER(7, 2),&lt;br /&gt;
  7                    COMM NUMBER(7, 2),&lt;br /&gt;
  8                    DEPTNO NUMBER(2));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7369, &amp;quot;SMITH&amp;quot;, &amp;quot;CLERK&amp;quot;,    7902, TO_DATE(&amp;quot;17-DEC-1980&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 800, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7499, &amp;quot;ALLEN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;20-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1600, 300, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7521, &amp;quot;WARD&amp;quot;,  &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;22-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 500, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7566, &amp;quot;JONES&amp;quot;, &amp;quot;MANAGER&amp;quot;,  7839, TO_DATE(&amp;quot;2-APR-1981&amp;quot;,  &amp;quot;DD-MON-YYYY&amp;quot;), 2975, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7654, &amp;quot;MARTIN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;28-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 1400, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7698, &amp;quot;BLAKE&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;1-MAY-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2850, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7782, &amp;quot;CLARK&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;9-JUN-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2450, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7788, &amp;quot;SCOTT&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;09-DEC-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7839, &amp;quot;KING&amp;quot;, &amp;quot;PRESIDENT&amp;quot;, NULL,TO_DATE(&amp;quot;17-NOV-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 5000, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7844, &amp;quot;TURNER&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;8-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1500, 0, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7876, &amp;quot;ADAMS&amp;quot;, &amp;quot;CLERK&amp;quot;, 7788,TO_DATE(&amp;quot;12-JAN-1983&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1100, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7900, &amp;quot;JAMES&amp;quot;, &amp;quot;CLERK&amp;quot;, 7698,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 950, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7902, &amp;quot;FORD&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7934, &amp;quot;MILLER&amp;quot;, &amp;quot;CLERK&amp;quot;, 7782,TO_DATE(&amp;quot;23-JAN-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1300, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from emp;&lt;br /&gt;
   EMPNO ENAME      JOB            MGR HIREDATE       SAL     COMM DEPTNO&lt;br /&gt;
-------- ---------- --------- -------- --------- -------- -------- ------&lt;br /&gt;
 7369.00 SMITH      CLERK      7902.00 17-DEC-80   800.00              20&lt;br /&gt;
 7499.00 ALLEN      SALESMAN   7698.00 20-FEB-81  1600.00   300.00     30&lt;br /&gt;
 7521.00 WARD       SALESMAN   7698.00 22-FEB-81  1250.00   500.00&lt;br /&gt;
 7566.00 JONES      MANAGER    7839.00 02-APR-81  2975.00              20&lt;br /&gt;
 7654.00 MARTIN     SALESMAN   7698.00 28-SEP-81  1250.00  1400.00     30&lt;br /&gt;
 7698.00 BLAKE      MANAGER    7839.00 01-MAY-81  2850.00&lt;br /&gt;
 7782.00 CLARK      MANAGER    7839.00 09-JUN-81  2450.00              10&lt;br /&gt;
   EMPNO ENAME      JOB            MGR HIREDATE       SAL     COMM DEPTNO&lt;br /&gt;
-------- ---------- --------- -------- --------- -------- -------- ------&lt;br /&gt;
 7788.00 SCOTT      ANALYST    7566.00 09-DEC-82  3000.00              20&lt;br /&gt;
 7839.00 KING       PRESIDENT          17-NOV-81  5000.00              10&lt;br /&gt;
 7844.00 TURNER     SALESMAN   7698.00 08-SEP-81  1500.00      .00     30&lt;br /&gt;
 7876.00 ADAMS      CLERK      7788.00 12-JAN-83  1100.00              20&lt;br /&gt;
 7900.00 JAMES      CLERK      7698.00 03-DEC-81   950.00              30&lt;br /&gt;
&lt;br /&gt;
   EMPNO ENAME      JOB            MGR HIREDATE       SAL     COMM DEPTNO&lt;br /&gt;
-------- ---------- --------- -------- --------- -------- -------- ------&lt;br /&gt;
 7902.00 FORD       ANALYST    7566.00 03-DEC-81  3000.00              20&lt;br /&gt;
 7934.00 MILLER     CLERK      7782.00 23-JAN-82  1300.00              10&lt;br /&gt;
&lt;br /&gt;
14 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select ename, hiredate,&lt;br /&gt;
  2     first_value(ename) over&lt;br /&gt;
  3       (order by hiredate asc&lt;br /&gt;
  4        range between 100 preceding and 100 following),&lt;br /&gt;
  5        last_value(ename) over&lt;br /&gt;
  6       (order by hiredate asc&lt;br /&gt;
  7        range between 100 preceding and 100 following)&lt;br /&gt;
  8  from emp&lt;br /&gt;
  9  order by hiredate asc&lt;br /&gt;
 10  /&lt;br /&gt;
ENAME      HIREDATE  FIRST_VALU LAST_VALUE&lt;br /&gt;
---------- --------- ---------- ----------&lt;br /&gt;
SMITH      17-DEC-80 SMITH      WARD&lt;br /&gt;
ALLEN      20-FEB-81 SMITH      BLAKE&lt;br /&gt;
WARD       22-FEB-81 SMITH      BLAKE&lt;br /&gt;
JONES      02-APR-81 ALLEN      CLARK&lt;br /&gt;
BLAKE      01-MAY-81 ALLEN      CLARK&lt;br /&gt;
CLARK      09-JUN-81 JONES      TURNER&lt;br /&gt;
TURNER     08-SEP-81 CLARK      JAMES&lt;br /&gt;
MARTIN     28-SEP-81 TURNER     JAMES&lt;br /&gt;
KING       17-NOV-81 TURNER     MILLER&lt;br /&gt;
FORD       03-DEC-81 TURNER     MILLER&lt;br /&gt;
JAMES      03-DEC-81 TURNER     MILLER&lt;br /&gt;
ENAME      HIREDATE  FIRST_VALU LAST_VALUE&lt;br /&gt;
---------- --------- ---------- ----------&lt;br /&gt;
MILLER     23-JAN-82 KING       MILLER&lt;br /&gt;
SCOTT      09-DEC-82 SCOTT      ADAMS&lt;br /&gt;
ADAMS      12-JAN-83 SCOTT      ADAMS&lt;br /&gt;
14 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==range unbounded preceding==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
SQL&amp;gt; CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,&lt;br /&gt;
  2                    ENAME VARCHAR2(10),&lt;br /&gt;
  3                    JOB VARCHAR2(9),&lt;br /&gt;
  4                    MGR NUMBER(4),&lt;br /&gt;
  5                    HIREDATE DATE,&lt;br /&gt;
  6                    SAL NUMBER(7, 2),&lt;br /&gt;
  7                    COMM NUMBER(7, 2),&lt;br /&gt;
  8                    DEPTNO NUMBER(2));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7369, &amp;quot;SMITH&amp;quot;, &amp;quot;CLERK&amp;quot;,    7902, TO_DATE(&amp;quot;17-DEC-1980&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 800, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7499, &amp;quot;ALLEN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;20-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1600, 300, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7521, &amp;quot;WARD&amp;quot;,  &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;22-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 500, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7566, &amp;quot;JONES&amp;quot;, &amp;quot;MANAGER&amp;quot;,  7839, TO_DATE(&amp;quot;2-APR-1981&amp;quot;,  &amp;quot;DD-MON-YYYY&amp;quot;), 2975, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7654, &amp;quot;MARTIN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;28-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 1400, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7698, &amp;quot;BLAKE&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;1-MAY-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2850, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7782, &amp;quot;CLARK&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;9-JUN-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2450, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7788, &amp;quot;SCOTT&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;09-DEC-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7839, &amp;quot;KING&amp;quot;, &amp;quot;PRESIDENT&amp;quot;, NULL,TO_DATE(&amp;quot;17-NOV-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 5000, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7844, &amp;quot;TURNER&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;8-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1500, 0, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7876, &amp;quot;ADAMS&amp;quot;, &amp;quot;CLERK&amp;quot;, 7788,TO_DATE(&amp;quot;12-JAN-1983&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1100, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7900, &amp;quot;JAMES&amp;quot;, &amp;quot;CLERK&amp;quot;, 7698,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 950, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7902, &amp;quot;FORD&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7934, &amp;quot;MILLER&amp;quot;, &amp;quot;CLERK&amp;quot;, 7782,TO_DATE(&amp;quot;23-JAN-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1300, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from emp;&lt;br /&gt;
   EMPNO ENAME      JOB            MGR HIREDATE       SAL     COMM DEPTNO&lt;br /&gt;
-------- ---------- --------- -------- --------- -------- -------- ------&lt;br /&gt;
 7369.00 SMITH      CLERK      7902.00 17-DEC-80   800.00              20&lt;br /&gt;
 7499.00 ALLEN      SALESMAN   7698.00 20-FEB-81  1600.00   300.00     30&lt;br /&gt;
 7521.00 WARD       SALESMAN   7698.00 22-FEB-81  1250.00   500.00&lt;br /&gt;
 7566.00 JONES      MANAGER    7839.00 02-APR-81  2975.00              20&lt;br /&gt;
 7654.00 MARTIN     SALESMAN   7698.00 28-SEP-81  1250.00  1400.00     30&lt;br /&gt;
 7698.00 BLAKE      MANAGER    7839.00 01-MAY-81  2850.00&lt;br /&gt;
 7782.00 CLARK      MANAGER    7839.00 09-JUN-81  2450.00              10&lt;br /&gt;
   EMPNO ENAME      JOB            MGR HIREDATE       SAL     COMM DEPTNO&lt;br /&gt;
-------- ---------- --------- -------- --------- -------- -------- ------&lt;br /&gt;
 7788.00 SCOTT      ANALYST    7566.00 09-DEC-82  3000.00              20&lt;br /&gt;
 7839.00 KING       PRESIDENT          17-NOV-81  5000.00              10&lt;br /&gt;
 7844.00 TURNER     SALESMAN   7698.00 08-SEP-81  1500.00      .00     30&lt;br /&gt;
 7876.00 ADAMS      CLERK      7788.00 12-JAN-83  1100.00              20&lt;br /&gt;
 7900.00 JAMES      CLERK      7698.00 03-DEC-81   950.00              30&lt;br /&gt;
&lt;br /&gt;
   EMPNO ENAME      JOB            MGR HIREDATE       SAL     COMM DEPTNO&lt;br /&gt;
-------- ---------- --------- -------- --------- -------- -------- ------&lt;br /&gt;
 7902.00 FORD       ANALYST    7566.00 03-DEC-81  3000.00              20&lt;br /&gt;
 7934.00 MILLER     CLERK      7782.00 23-JAN-82  1300.00              10&lt;br /&gt;
&lt;br /&gt;
14 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select *&lt;br /&gt;
  2  from (select deptno, ename, sal,&lt;br /&gt;
  3        count(*) over (partition by deptno&lt;br /&gt;
  4                       order by sal desc&lt;br /&gt;
  5                       range unbounded preceding)&lt;br /&gt;
  6        cnt from emp)&lt;br /&gt;
  7  where cnt &amp;lt;= 3&lt;br /&gt;
  8  order by deptno, sal desc&lt;br /&gt;
  9  /&lt;br /&gt;
DEPTNO ENAME           SAL      CNT&lt;br /&gt;
------ ---------- -------- --------&lt;br /&gt;
    10 KING        5000.00     1.00&lt;br /&gt;
       CLARK       2450.00     2.00&lt;br /&gt;
       MILLER      1300.00     3.00&lt;br /&gt;
    20 SCOTT       3000.00     2.00&lt;br /&gt;
       FORD        3000.00     2.00&lt;br /&gt;
       JONES       2975.00     3.00&lt;br /&gt;
    30 BLAKE       2850.00     1.00&lt;br /&gt;
       ALLEN       1600.00     2.00&lt;br /&gt;
       TURNER      1500.00     3.00&lt;br /&gt;
9 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>