<?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%2FRATIO_TO_REPORT</id>
		<title>Oracle PL/SQL/Analytical Functions/RATIO TO REPORT - История изменений</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%2FRATIO_TO_REPORT"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Analytical_Functions/RATIO_TO_REPORT&amp;action=history"/>
		<updated>2026-04-04T02:28:01Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/Analytical_Functions/RATIO_TO_REPORT&amp;diff=1396&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/RATIO_TO_REPORT&amp;diff=1396&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/RATIO_TO_REPORT&amp;diff=1397&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/RATIO_TO_REPORT&amp;diff=1397&amp;oldid=prev"/>
				<updated>2010-05-26T09:55:53Z</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;==Notice that the PORTION column adds up to 100%==&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 demo table&lt;br /&gt;
SQL&amp;gt; create table Employee(&lt;br /&gt;
  2    empno              Number(3)  NOT NULL, -- Employee ID&lt;br /&gt;
  3    ename              VARCHAR2(10 BYTE),   -- Employee Name&lt;br /&gt;
  4    hireDate          DATE,                -- Date Employee Hired&lt;br /&gt;
  5    orig_salary        Number(8,2),         -- Orignal Salary&lt;br /&gt;
  6    curr_salary        Number(8,2),         -- Current Salary&lt;br /&gt;
  7    region             VARCHAR2(1 BYTE)     -- Region where employeed&lt;br /&gt;
  8  )&lt;br /&gt;
  9  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- prepare data for employee table&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(122,&amp;quot;Alison&amp;quot;,to_date(&amp;quot;19960321&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 45000,       48000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(123, &amp;quot;James&amp;quot;,to_date(&amp;quot;19781212&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 23000,       32000,       &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(104,&amp;quot;Celia&amp;quot;,to_date(&amp;quot;19821024&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 53000,       58000,        &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(105,&amp;quot;Robert&amp;quot;,to_date(&amp;quot;19840115&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 31000,      36000,        &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(116,&amp;quot;Linda&amp;quot;, to_date(&amp;quot;19870730&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 43000,       53000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(117,&amp;quot;David&amp;quot;, to_date(&amp;quot;19901231&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 78000,       85000,       &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(108,&amp;quot;Jode&amp;quot;,  to_date(&amp;quot;19960917&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 21000,       29000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from employee;&lt;br /&gt;
     EMPNO ENAME      HIREDATE  ORIG_SALARY CURR_SALARY R&lt;br /&gt;
---------- ---------- --------- ----------- ----------- -&lt;br /&gt;
       122 Alison     21-MAR-96       45000       48000 E&lt;br /&gt;
       123 James      12-DEC-78       23000       32000 W&lt;br /&gt;
       104 Celia      24-OCT-82       53000       58000 E&lt;br /&gt;
       105 Robert     15-JAN-84       31000       36000 W&lt;br /&gt;
       116 Linda      30-JUL-87       43000       53000 E&lt;br /&gt;
       117 David      31-DEC-90       78000       85000 W&lt;br /&gt;
       108 Jode       17-SEP-96       21000       29000 E&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- Notice that the PORTION column adds up to 100%:&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; COLUMN total FORMAT 9.9999;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT sum(o.portion) Total&lt;br /&gt;
  2  FROM&lt;br /&gt;
  3    (SELECT i.ename, i.curr_salary,&lt;br /&gt;
  4      i.curr_salary/SUM(i.curr_salary) OVER() Portion&lt;br /&gt;
  5    FROM employee i&lt;br /&gt;
  6  ORDER BY i.curr_salary) o;&lt;br /&gt;
  TOTAL&lt;br /&gt;
-------&lt;br /&gt;
 1.0000&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- clean the table&lt;br /&gt;
SQL&amp;gt; drop table Employee&lt;br /&gt;
  2  /&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Portion amounts add to 1.000 in each region==&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 demo table&lt;br /&gt;
SQL&amp;gt; create table Employee(&lt;br /&gt;
  2    empno              Number(3)  NOT NULL, -- Employee ID&lt;br /&gt;
  3    ename              VARCHAR2(10 BYTE),   -- Employee Name&lt;br /&gt;
  4    hireDate          DATE,                -- Date Employee Hired&lt;br /&gt;
  5    orig_salary        Number(8,2),         -- Orignal Salary&lt;br /&gt;
  6    curr_salary        Number(8,2),         -- Current Salary&lt;br /&gt;
  7    region             VARCHAR2(1 BYTE)     -- Region where employeed&lt;br /&gt;
  8  )&lt;br /&gt;
  9  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- prepare data for employee table&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(122,&amp;quot;Alison&amp;quot;,to_date(&amp;quot;19960321&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 45000,       48000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(123, &amp;quot;James&amp;quot;,to_date(&amp;quot;19781212&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 23000,       32000,       &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(104,&amp;quot;Celia&amp;quot;,to_date(&amp;quot;19821024&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 53000,       58000,        &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(105,&amp;quot;Robert&amp;quot;,to_date(&amp;quot;19840115&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 31000,      36000,        &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(116,&amp;quot;Linda&amp;quot;, to_date(&amp;quot;19870730&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 43000,       53000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(117,&amp;quot;David&amp;quot;, to_date(&amp;quot;19901231&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 78000,       85000,       &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(108,&amp;quot;Jode&amp;quot;,  to_date(&amp;quot;19960917&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 21000,       29000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from employee;&lt;br /&gt;
     EMPNO ENAME      HIREDATE  ORIG_SALARY CURR_SALARY R&lt;br /&gt;
---------- ---------- --------- ----------- ----------- -&lt;br /&gt;
       122 Alison     21-MAR-96       45000       48000 E&lt;br /&gt;
       123 James      12-DEC-78       23000       32000 W&lt;br /&gt;
       104 Celia      24-OCT-82       53000       58000 E&lt;br /&gt;
       105 Robert     15-JAN-84       31000       36000 W&lt;br /&gt;
       116 Linda      30-JUL-87       43000       53000 E&lt;br /&gt;
       117 David      31-DEC-90       78000       85000 W&lt;br /&gt;
       108 Jode       17-SEP-96       21000       29000 E&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- Portion amounts add to 1.000 in each region&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT ename, curr_salary, region,&lt;br /&gt;
  2    curr_salary/SUM(curr_salary) OVER(PARTITION BY Region)&lt;br /&gt;
  3        Portion,&lt;br /&gt;
  4    RATIO_TO_REPORT(curr_salary) OVER(PARTITION BY Region)&lt;br /&gt;
  5        Portion2&lt;br /&gt;
  6  FROM employee&lt;br /&gt;
  7  UNION&lt;br /&gt;
  8  SELECT null, TO_NUMBER(null), region, sum(P1), sum(p2)&lt;br /&gt;
  9  FROM&lt;br /&gt;
 10    (SELECT ename, curr_salary, region,&lt;br /&gt;
 11         curr_salary/SUM(curr_salary) OVER(PARTITION BY Region) P1,&lt;br /&gt;
 12         RATIO_TO_REPORT(curr_salary) OVER(PARTITION BY Region) P2&lt;br /&gt;
 13    FROM employee)&lt;br /&gt;
 14  GROUP BY region&lt;br /&gt;
 15  ORDER BY 3,2;&lt;br /&gt;
ENAME      CURR_SALARY R  PORTION PORTION2&lt;br /&gt;
---------- ----------- - -------- --------&lt;br /&gt;
Jode             29000 E    .1543    .1543&lt;br /&gt;
Alison           48000 E    .2553    .2553&lt;br /&gt;
Linda            53000 E    .2819    .2819&lt;br /&gt;
Celia            58000 E    .3085    .3085&lt;br /&gt;
                       E   1.0000   1.0000&lt;br /&gt;
James            32000 W    .2092    .2092&lt;br /&gt;
Robert           36000 W    .2353    .2353&lt;br /&gt;
David            85000 W    .5556    .5556&lt;br /&gt;
                       W   1.0000   1.0000&lt;br /&gt;
9 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- clean the table&lt;br /&gt;
SQL&amp;gt; drop table Employee&lt;br /&gt;
  2  /&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RATIO_TO_REPORT, break on and compute==&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 demo table&lt;br /&gt;
SQL&amp;gt; create table Employee(&lt;br /&gt;
  2    empno              Number(3)  NOT NULL, -- Employee ID&lt;br /&gt;
  3    ename              VARCHAR2(10 BYTE),   -- Employee Name&lt;br /&gt;
  4    hireDate          DATE,                -- Date Employee Hired&lt;br /&gt;
  5    orig_salary        Number(8,2),         -- Orignal Salary&lt;br /&gt;
  6    curr_salary        Number(8,2),         -- Current Salary&lt;br /&gt;
  7    region             VARCHAR2(1 BYTE)     -- Region where employeed&lt;br /&gt;
  8  )&lt;br /&gt;
  9  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- prepare data for employee table&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(122,&amp;quot;Alison&amp;quot;,to_date(&amp;quot;19960321&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 45000,       48000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(123, &amp;quot;James&amp;quot;,to_date(&amp;quot;19781212&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 23000,       32000,       &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(104,&amp;quot;Celia&amp;quot;,to_date(&amp;quot;19821024&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 53000,       58000,        &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(105,&amp;quot;Robert&amp;quot;,to_date(&amp;quot;19840115&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 31000,      36000,        &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(116,&amp;quot;Linda&amp;quot;, to_date(&amp;quot;19870730&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 43000,       53000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(117,&amp;quot;David&amp;quot;, to_date(&amp;quot;19901231&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 78000,       85000,       &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(108,&amp;quot;Jode&amp;quot;,  to_date(&amp;quot;19960917&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 21000,       29000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from employee;&lt;br /&gt;
     EMPNO ENAME      HIREDATE  ORIG_SALARY CURR_SALARY R&lt;br /&gt;
---------- ---------- --------- ----------- ----------- -&lt;br /&gt;
       122 Alison     21-MAR-96       45000       48000 E&lt;br /&gt;
       123 James      12-DEC-78       23000       32000 W&lt;br /&gt;
       104 Celia      24-OCT-82       53000       58000 E&lt;br /&gt;
       105 Robert     15-JAN-84       31000       36000 W&lt;br /&gt;
       116 Linda      30-JUL-87       43000       53000 E&lt;br /&gt;
       117 David      31-DEC-90       78000       85000 W&lt;br /&gt;
       108 Jode       17-SEP-96       21000       29000 E&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; BREAK ON region&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; COMPUTE sum of portion ON region&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT ename, curr_salary, region,&lt;br /&gt;
  2    curr_salary/SUM(curr_salary) OVER(PARTITION BY Region)&lt;br /&gt;
  3        Portion,&lt;br /&gt;
  4    RATIO_TO_REPORT(curr_salary) OVER(PARTITION BY Region)&lt;br /&gt;
  5        Portion2&lt;br /&gt;
  6  FROM employee&lt;br /&gt;
  7  ORDER BY region, curr_salary;&lt;br /&gt;
ENAME      CURR_SALARY R  PORTION PORTION2&lt;br /&gt;
---------- ----------- - -------- --------&lt;br /&gt;
Jode             29000 E    .1543    .1543&lt;br /&gt;
Alison           48000      .2553    .2553&lt;br /&gt;
Linda            53000      .2819    .2819&lt;br /&gt;
Celia            58000      .3085    .3085&lt;br /&gt;
                       * --------&lt;br /&gt;
                       s   1.0000&lt;br /&gt;
James            32000 W    .2092    .2092&lt;br /&gt;
Robert           36000      .2353    .2353&lt;br /&gt;
David            85000      .5556    .5556&lt;br /&gt;
                       * --------&lt;br /&gt;
                       s   1.0000&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- clean the table&lt;br /&gt;
SQL&amp;gt; drop table Employee&lt;br /&gt;
  2  /&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RATIO_TO_REPORT can easily be partioned as well==&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 demo table&lt;br /&gt;
SQL&amp;gt; create table Employee(&lt;br /&gt;
  2    empno              Number(3)  NOT NULL, -- Employee ID&lt;br /&gt;
  3    ename              VARCHAR2(10 BYTE),   -- Employee Name&lt;br /&gt;
  4    hireDate          DATE,                -- Date Employee Hired&lt;br /&gt;
  5    orig_salary        Number(8,2),         -- Orignal Salary&lt;br /&gt;
  6    curr_salary        Number(8,2),         -- Current Salary&lt;br /&gt;
  7    region             VARCHAR2(1 BYTE)     -- Region where employeed&lt;br /&gt;
  8  )&lt;br /&gt;
  9  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- prepare data for employee table&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(122,&amp;quot;Alison&amp;quot;,to_date(&amp;quot;19960321&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 45000,       48000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(123, &amp;quot;James&amp;quot;,to_date(&amp;quot;19781212&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 23000,       32000,       &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(104,&amp;quot;Celia&amp;quot;,to_date(&amp;quot;19821024&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 53000,       58000,        &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(105,&amp;quot;Robert&amp;quot;,to_date(&amp;quot;19840115&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 31000,      36000,        &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(116,&amp;quot;Linda&amp;quot;, to_date(&amp;quot;19870730&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 43000,       53000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(117,&amp;quot;David&amp;quot;, to_date(&amp;quot;19901231&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 78000,       85000,       &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(108,&amp;quot;Jode&amp;quot;,  to_date(&amp;quot;19960917&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 21000,       29000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from employee;&lt;br /&gt;
     EMPNO ENAME      HIREDATE  ORIG_SALARY CURR_SALARY R&lt;br /&gt;
---------- ---------- --------- ----------- ----------- -&lt;br /&gt;
       122 Alison     21-MAR-96       45000       48000 E&lt;br /&gt;
       123 James      12-DEC-78       23000       32000 W&lt;br /&gt;
       104 Celia      24-OCT-82       53000       58000 E&lt;br /&gt;
       105 Robert     15-JAN-84       31000       36000 W&lt;br /&gt;
       116 Linda      30-JUL-87       43000       53000 E&lt;br /&gt;
       117 David      31-DEC-90       78000       85000 W&lt;br /&gt;
       108 Jode       17-SEP-96       21000       29000 E&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- RATIO_TO_REPORT can easily be partioned as well&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT ename, curr_salary, region,&lt;br /&gt;
  2    curr_salary/SUM(curr_salary) OVER(PARTITION BY Region)&lt;br /&gt;
  3        Portion,&lt;br /&gt;
  4    RATIO_TO_REPORT(curr_salary) OVER(PARTITION BY Region)&lt;br /&gt;
  5        Portion2&lt;br /&gt;
  6  FROM employee&lt;br /&gt;
  7  ORDER BY region, curr_salary;&lt;br /&gt;
ENAME      CURR_SALARY R  PORTION PORTION2&lt;br /&gt;
---------- ----------- - -------- --------&lt;br /&gt;
Jode             29000 E    .1543    .1543&lt;br /&gt;
Alison           48000 E    .2553    .2553&lt;br /&gt;
Linda            53000 E    .2819    .2819&lt;br /&gt;
Celia            58000 E    .3085    .3085&lt;br /&gt;
James            32000 W    .2092    .2092&lt;br /&gt;
Robert           36000 W    .2353    .2353&lt;br /&gt;
David            85000 W    .5556    .5556&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- clean the table&lt;br /&gt;
SQL&amp;gt; drop table Employee&lt;br /&gt;
  2  /&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RATIO_TO_REPORT(): compute the ratio of a value to the sum of a set of values==&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 all_sales (&lt;br /&gt;
  2    year INTEGER,&lt;br /&gt;
  3    month INTEGER,&lt;br /&gt;
  4    prd_type_id INTEGER,&lt;br /&gt;
  5    emp_id INTEGER ,&lt;br /&gt;
  6    amount NUMBER(8, 2)&lt;br /&gt;
  7  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2006,1    ,1          ,21    ,16034.84);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2006,2    ,1          ,21    ,15644.65);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2006,3    ,2          ,21    ,20167.83);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2006,4    ,2          ,21    ,25056.45);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2006,5    ,2          ,21    ,NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2006,6    ,1          ,21    ,15564.66);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2006,7    ,1          ,21    ,15644.65);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2006,8    ,1          ,21    ,16434.82);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2006,9    ,1          ,21    ,19654.57);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2006,10   ,1          ,21    ,21764.19);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2006,11   ,1          ,21    ,13026.73);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2006,12   ,2          ,21    ,10034.64);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2005,1    ,2          ,22    ,16634.84);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2005,1    ,2          ,21    ,26034.84);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2005,2    ,1          ,21    ,12644.65);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2005,3    ,1          ,21    ,NULL);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2005,4    ,1          ,21    ,25026.45);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2005,5    ,1          ,21    ,17212.66);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2005,6    ,1          ,21    ,15564.26);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2005,7    ,2          ,21    ,62654.82);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2005,8    ,2          ,21    ,26434.82);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2005,9    ,2          ,21    ,15644.65);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2005,10   ,2          ,21    ,21264.19);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2005,11   ,1          ,21    ,13026.73);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into all_sales (YEAR,MONTH,PRD_TYPE_ID,EMP_ID,AMOUNT)&lt;br /&gt;
  2                  values(2005,12   ,1          ,21    ,10032.64);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from all_sales;&lt;br /&gt;
      YEAR      MONTH PRD_TYPE_ID     EMP_ID     AMOUNT&lt;br /&gt;
---------- ---------- ----------- ---------- ----------&lt;br /&gt;
      2006          1           1         21   16034.84&lt;br /&gt;
      2006          2           1         21   15644.65&lt;br /&gt;
      2006          3           2         21   20167.83&lt;br /&gt;
      2006          4           2         21   25056.45&lt;br /&gt;
      2006          5           2         21&lt;br /&gt;
      2006          6           1         21   15564.66&lt;br /&gt;
      2006          7           1         21   15644.65&lt;br /&gt;
      2006          8           1         21   16434.82&lt;br /&gt;
      2006          9           1         21   19654.57&lt;br /&gt;
      2006         10           1         21   21764.19&lt;br /&gt;
      2006         11           1         21   13026.73&lt;br /&gt;
      2006         12           2         21   10034.64&lt;br /&gt;
      2005          1           2         22   16634.84&lt;br /&gt;
      2005          1           2         21   26034.84&lt;br /&gt;
      2005          2           1         21   12644.65&lt;br /&gt;
      2005          3           1         21&lt;br /&gt;
      2005          4           1         21   25026.45&lt;br /&gt;
      2005          5           1         21   17212.66&lt;br /&gt;
      2005          6           1         21   15564.26&lt;br /&gt;
      2005          7           2         21   62654.82&lt;br /&gt;
      2005          8           2         21   26434.82&lt;br /&gt;
      2005          9           2         21   15644.65&lt;br /&gt;
      2005         10           2         21   21264.19&lt;br /&gt;
      2005         11           1         21   13026.73&lt;br /&gt;
      2005         12           1         21   10032.64&lt;br /&gt;
25 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; --RATIO_TO_REPORT(): compute the ratio of a value to the sum of a set of values.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT&lt;br /&gt;
  2   month, prd_type_id,&lt;br /&gt;
  3   SUM(amount) AS prd_type_amount,&lt;br /&gt;
  4   RATIO_TO_REPORT(SUM(amount)) OVER (PARTITION BY month)&lt;br /&gt;
  5    AS prd_type_ratio&lt;br /&gt;
  6  FROM all_sales&lt;br /&gt;
  7  WHERE month &amp;lt;= 3&lt;br /&gt;
  8  GROUP BY month, prd_type_id&lt;br /&gt;
  9  ORDER BY month, prd_type_id;&lt;br /&gt;
     MONTH PRD_TYPE_ID PRD_TYPE_AMOUNT PRD_TYPE_RATIO&lt;br /&gt;
---------- ----------- --------------- --------------&lt;br /&gt;
         1           1        16034.84     .273144896&lt;br /&gt;
         1           2        42669.68     .726855104&lt;br /&gt;
         2           1         28289.3              1&lt;br /&gt;
         3           1&lt;br /&gt;
         3           2        20167.83              1&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table all_sales;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RATIO_TO_REPORT Demo==&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 demo table&lt;br /&gt;
SQL&amp;gt; create table Employee(&lt;br /&gt;
  2    empno              Number(3)  NOT NULL, -- Employee ID&lt;br /&gt;
  3    ename              VARCHAR2(10 BYTE),   -- Employee Name&lt;br /&gt;
  4    hireDate          DATE,                -- Date Employee Hired&lt;br /&gt;
  5    orig_salary        Number(8,2),         -- Orignal Salary&lt;br /&gt;
  6    curr_salary        Number(8,2),         -- Current Salary&lt;br /&gt;
  7    region             VARCHAR2(1 BYTE)     -- Region where employeed&lt;br /&gt;
  8  )&lt;br /&gt;
  9  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- prepare data for employee table&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(122,&amp;quot;Alison&amp;quot;,to_date(&amp;quot;19960321&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 45000,       48000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(123, &amp;quot;James&amp;quot;,to_date(&amp;quot;19781212&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 23000,       32000,       &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(104,&amp;quot;Celia&amp;quot;,to_date(&amp;quot;19821024&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 53000,       58000,        &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(105,&amp;quot;Robert&amp;quot;,to_date(&amp;quot;19840115&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 31000,      36000,        &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(116,&amp;quot;Linda&amp;quot;, to_date(&amp;quot;19870730&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 43000,       53000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(117,&amp;quot;David&amp;quot;, to_date(&amp;quot;19901231&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 78000,       85000,       &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(108,&amp;quot;Jode&amp;quot;,  to_date(&amp;quot;19960917&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 21000,       29000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from employee;&lt;br /&gt;
     EMPNO ENAME      HIREDATE  ORIG_SALARY CURR_SALARY R&lt;br /&gt;
---------- ---------- --------- ----------- ----------- -&lt;br /&gt;
       122 Alison     21-MAR-96       45000       48000 E&lt;br /&gt;
       123 James      12-DEC-78       23000       32000 W&lt;br /&gt;
       104 Celia      24-OCT-82       53000       58000 E&lt;br /&gt;
       105 Robert     15-JAN-84       31000       36000 W&lt;br /&gt;
       116 Linda      30-JUL-87       43000       53000 E&lt;br /&gt;
       117 David      31-DEC-90       78000       85000 W&lt;br /&gt;
       108 Jode       17-SEP-96       21000       29000 E&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- RATIO_TO_REPORT&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; COLUMN portion2 LIKE portion&lt;br /&gt;
SQL&amp;gt; SELECT ename, curr_salary,&lt;br /&gt;
  2    curr_salary/SUM(curr_salary) OVER() Portion,&lt;br /&gt;
  3    RATIO_TO_REPORT(curr_salary) OVER() Portion2&lt;br /&gt;
  4  FROM employee&lt;br /&gt;
  5  ORDER BY curr_salary;&lt;br /&gt;
ENAME      CURR_SALARY  PORTION PORTION2&lt;br /&gt;
---------- ----------- -------- --------&lt;br /&gt;
Jode             29000    .0850    .0850&lt;br /&gt;
James            32000    .0938    .0938&lt;br /&gt;
Robert           36000    .1056    .1056&lt;br /&gt;
Alison           48000    .1408    .1408&lt;br /&gt;
Linda            53000    .1554    .1554&lt;br /&gt;
Celia            58000    .1701    .1701&lt;br /&gt;
David            85000    .2493    .2493&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- clean the table&lt;br /&gt;
SQL&amp;gt; drop table Employee&lt;br /&gt;
  2  /&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>