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

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/Analytical_Functions/NTILE&amp;diff=1362&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/NTILE&amp;diff=1362&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/NTILE&amp;diff=1363&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/NTILE&amp;diff=1363&amp;oldid=prev"/>
				<updated>2010-05-26T09:55:41Z</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;==NTILE(2) OVER (ORDER BY SUM(amount) DESC) AS ntile==&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;
&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; SELECT&lt;br /&gt;
  2   prd_type_id, SUM(amount),&lt;br /&gt;
  3   NTILE(2) OVER (ORDER BY SUM(amount) DESC) AS ntile&lt;br /&gt;
  4  FROM all_sales&lt;br /&gt;
  5  WHERE amount IS NOT NULL&lt;br /&gt;
  6  GROUP BY prd_type_id&lt;br /&gt;
  7  ORDER BY prd_type_id;&lt;br /&gt;
PRD_TYPE_ID SUM(AMOUNT)      NTILE&lt;br /&gt;
----------- ----------- ----------&lt;br /&gt;
          1    227276.5          1&lt;br /&gt;
          2   223927.08          2&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;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==NTILE(4) function is used for that ordering==&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;
&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,       NULL,       &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;), NULL,       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,      NULL,        &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;), NULL,       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,       NULL,       &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; -- display data in the table&lt;br /&gt;
SQL&amp;gt; select * from Employee&lt;br /&gt;
  2  /&lt;br /&gt;
     EMPNO ENAME      HIREDATE  ORIG_SALARY CURR_SALARY R&lt;br /&gt;
---------- ---------- --------- ----------- ----------- -&lt;br /&gt;
       122 Alison     21-MAR-96       45000             E&lt;br /&gt;
       123 James      12-DEC-78       23000       32000 W&lt;br /&gt;
       104 Celia      24-OCT-82                   58000 E&lt;br /&gt;
       105 Robert     15-JAN-84       31000             W&lt;br /&gt;
       116 Linda      30-JUL-87                   53000 E&lt;br /&gt;
       117 David      31-DEC-90       78000             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;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- Ntile&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- NTILE(4) function is used for that ordering (100%/4 = 25%).&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT empno, ename, curr_salary,&lt;br /&gt;
  2    NTILE(4) OVER(ORDER BY curr_salary desc) nt&lt;br /&gt;
  3  FROM employee;&lt;br /&gt;
     EMPNO ENAME      CURR_SALARY         NT&lt;br /&gt;
---------- ---------- ----------- ----------&lt;br /&gt;
       122 Alison                          1&lt;br /&gt;
       105 Robert                          1&lt;br /&gt;
       117 David                           2&lt;br /&gt;
       104 Celia            58000          2&lt;br /&gt;
       116 Linda            53000          3&lt;br /&gt;
       123 James            32000          3&lt;br /&gt;
       108 Jode             29000          4&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;&lt;br /&gt;
SQL&amp;gt; -- clean the table&lt;br /&gt;
SQL&amp;gt; drop table Employee;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&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;
==NTILE(4) in reverse order==&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;
&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,       NULL,       &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;), NULL,       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,      NULL,        &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;), NULL,       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,       NULL,       &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; -- display data in the table&lt;br /&gt;
SQL&amp;gt; select * from Employee&lt;br /&gt;
  2  /&lt;br /&gt;
     EMPNO ENAME      HIREDATE  ORIG_SALARY CURR_SALARY R&lt;br /&gt;
---------- ---------- --------- ----------- ----------- -&lt;br /&gt;
       122 Alison     21-MAR-96       45000             E&lt;br /&gt;
       123 James      12-DEC-78       23000       32000 W&lt;br /&gt;
       104 Celia      24-OCT-82                   58000 E&lt;br /&gt;
       105 Robert     15-JAN-84       31000             W&lt;br /&gt;
       116 Linda      30-JUL-87                   53000 E&lt;br /&gt;
       117 David      31-DEC-90       78000             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;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- The following query and result reverses the grouping:&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT empno, ename, curr_salary,&lt;br /&gt;
  2    NTILE(4) OVER(ORDER BY curr_salary desc, empno desc) nt&lt;br /&gt;
  3  FROM employee;&lt;br /&gt;
     EMPNO ENAME      CURR_SALARY         NT&lt;br /&gt;
---------- ---------- ----------- ----------&lt;br /&gt;
       122 Alison                          1&lt;br /&gt;
       117 David                           1&lt;br /&gt;
       105 Robert                          2&lt;br /&gt;
       104 Celia            58000          2&lt;br /&gt;
       116 Linda            53000          3&lt;br /&gt;
       123 James            32000          3&lt;br /&gt;
       108 Jode             29000          4&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;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&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;
==ntile and row_number==&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 sales(&lt;br /&gt;
  2    product_id            NUMBER(6),&lt;br /&gt;
  3    cid           NUMBER,&lt;br /&gt;
  4    time_id               DATE,&lt;br /&gt;
  5    sold         NUMBER(3),&lt;br /&gt;
  6    amount                NUMBER(10,2),&lt;br /&gt;
  7    cost                  NUMBER(10,2)&lt;br /&gt;
  8  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE products(&lt;br /&gt;
  2    product_id           NUMBER(6),&lt;br /&gt;
  3    name         VARCHAR2(50),&lt;br /&gt;
  4    subcategory     VARCHAR2(50),&lt;br /&gt;
  5    category        VARCHAR2(50),&lt;br /&gt;
  6    min_price       NUMBER(8,2)&lt;br /&gt;
  7  );&lt;br /&gt;
Table created.&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 b.subcategory, sum(a.sold),ntile(4) over (ORDER BY SUM(a.sold) desc) as quartile,&lt;br /&gt;
  2         row_number () over (order by sum(sold) desc) as rownumber&lt;br /&gt;
  3  from sales a, products b&lt;br /&gt;
  4  where a.product_id = b.product_id&lt;br /&gt;
  5  and to_char(a.time_id, &amp;quot;yyyy-mm&amp;quot;) = &amp;quot;2001-06&amp;quot;&lt;br /&gt;
  6  group by b.subcategory;&lt;br /&gt;
no 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; drop table sales;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table products;&lt;br /&gt;
Table dropped.&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;
==ntile as quartile==&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 sales(&lt;br /&gt;
  2    product_id            NUMBER(6),&lt;br /&gt;
  3    cid           NUMBER,&lt;br /&gt;
  4    time_id               DATE,&lt;br /&gt;
  5    sold         NUMBER(3),&lt;br /&gt;
  6    amount                NUMBER(10,2),&lt;br /&gt;
  7    cost                  NUMBER(10,2)&lt;br /&gt;
  8  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE products(&lt;br /&gt;
  2    product_id           NUMBER(6),&lt;br /&gt;
  3    name         VARCHAR2(50),&lt;br /&gt;
  4    subcategory     VARCHAR2(50),&lt;br /&gt;
  5    category        VARCHAR2(50),&lt;br /&gt;
  6    min_price       NUMBER(8,2)&lt;br /&gt;
  7  );&lt;br /&gt;
Table created.&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 b.subcategory, sum(a.sold),ntile(4) over (ORDER BY SUM(a.sold) desc) as quartile&lt;br /&gt;
  2  from sales a, products b&lt;br /&gt;
  3  where a.product_id = b.product_id&lt;br /&gt;
  4  and to_char(a.time_id, &amp;quot;yyyy-mm&amp;quot;) = &amp;quot;2001-06&amp;quot;&lt;br /&gt;
  5  group by b.subcategory;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table sales;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table products;&lt;br /&gt;
Table dropped.&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;
==NTILE(buckets) to calculate n-tiles: tertiles, quartiles, and so on==&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;
&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; --Using the NTILE() Function&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; --NTILE(buckets) to calculate n-tiles: tertiles, quartiles, and so on;&lt;br /&gt;
SQL&amp;gt; --bucket specifies the number of �buckets?into which groups of rows are placed.&lt;br /&gt;
SQL&amp;gt; --For example, NTILE(2) specifies two buckets and divides the groups of rows in two;&lt;br /&gt;
SQL&amp;gt; --NTILE(4) divides the groups into four.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT&lt;br /&gt;
  2   prd_type_id, SUM(amount),&lt;br /&gt;
  3   NTILE(4) OVER (ORDER BY SUM(amount) DESC) AS ntile&lt;br /&gt;
  4  FROM all_sales&lt;br /&gt;
  5  WHERE amount IS NOT NULL&lt;br /&gt;
  6  GROUP BY prd_type_id&lt;br /&gt;
  7  ORDER BY prd_type_id;&lt;br /&gt;
PRD_TYPE_ID SUM(AMOUNT)      NTILE&lt;br /&gt;
----------- ----------- ----------&lt;br /&gt;
          1    227276.5          1&lt;br /&gt;
          2   223927.08          2&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;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==NTile with NULLS LAST==&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,       NULL,       &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;), NULL,       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,      NULL,        &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;), NULL,       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,       NULL,       &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; -- display data in the table&lt;br /&gt;
SQL&amp;gt; select * from Employee&lt;br /&gt;
  2  /&lt;br /&gt;
     EMPNO ENAME      HIREDATE  ORIG_SALARY CURR_SALARY R&lt;br /&gt;
---------- ---------- --------- ----------- ----------- -&lt;br /&gt;
       122 Alison     21-MAR-96       45000             E&lt;br /&gt;
       123 James      12-DEC-78       23000       32000 W&lt;br /&gt;
       104 Celia      24-OCT-82                   58000 E&lt;br /&gt;
       105 Robert     15-JAN-84       31000             W&lt;br /&gt;
       116 Linda      30-JUL-87                   53000 E&lt;br /&gt;
       117 David      31-DEC-90       78000             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;&lt;br /&gt;
SQL&amp;gt; -- And with NULLS LAST:&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT ename, curr_salary sal,&lt;br /&gt;
  2    ntile(2) OVER(ORDER BY curr_salary desc NULLS LAST) n2,&lt;br /&gt;
  3    ntile(3) OVER(ORDER BY curr_salary desc NULLS LAST) n3,&lt;br /&gt;
  4    ntile(4) OVER(ORDER BY curr_salary desc NULLS LAST) n4,&lt;br /&gt;
  5    ntile(5) OVER(ORDER BY curr_salary desc NULLS LAST) n5,&lt;br /&gt;
  6    ntile(6) OVER(ORDER BY curr_salary desc NULLS LAST) n6,&lt;br /&gt;
  7    ntile(8) OVER(ORDER BY curr_salary desc NULLS LAST) n8&lt;br /&gt;
  8  FROM employee;&lt;br /&gt;
ENAME             SAL         N2         N3         N4         N5         N6         N8&lt;br /&gt;
---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------&lt;br /&gt;
Celia           58000          1          1          1          1          1          1&lt;br /&gt;
Linda           53000          1          1          1          1          1          2&lt;br /&gt;
James           32000          1          1          2          2          2          3&lt;br /&gt;
Jode            29000          1          2          2          2          3          4&lt;br /&gt;
David                          2          2          3          3          4          5&lt;br /&gt;
Alison                         2          3          3          4          5          6&lt;br /&gt;
Robert                         2          3          4          5          6          7&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;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&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;
==To get a clearer picture of the NTILE function==&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;
&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,       NULL,       &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;), NULL,       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,      NULL,        &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;), NULL,       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,       NULL,       &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; -- display data in the table&lt;br /&gt;
SQL&amp;gt; select * from Employee&lt;br /&gt;
  2  /&lt;br /&gt;
     EMPNO ENAME      HIREDATE  ORIG_SALARY CURR_SALARY R&lt;br /&gt;
---------- ---------- --------- ----------- ----------- -&lt;br /&gt;
       122 Alison     21-MAR-96       45000             E&lt;br /&gt;
       123 James      12-DEC-78       23000       32000 W&lt;br /&gt;
       104 Celia      24-OCT-82                   58000 E&lt;br /&gt;
       105 Robert     15-JAN-84       31000             W&lt;br /&gt;
       116 Linda      30-JUL-87                   53000 E&lt;br /&gt;
       117 David      31-DEC-90       78000             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;&lt;br /&gt;
SQL&amp;gt; -- To get a clearer picture of the NTILE function, we can use it with several domains like this:&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT ename, curr_salary sal,&lt;br /&gt;
  2    ntile(2) OVER(ORDER BY curr_salary desc) n2,&lt;br /&gt;
  3    ntile(3) OVER(ORDER BY curr_salary desc) n3,&lt;br /&gt;
  4    ntile(4) OVER(ORDER BY curr_salary desc) n4,&lt;br /&gt;
  5    ntile(5) OVER(ORDER BY curr_salary desc) n5,&lt;br /&gt;
  6    ntile(6) OVER(ORDER BY curr_salary desc) n6,&lt;br /&gt;
  7    ntile(8) OVER(ORDER BY curr_salary desc) n8&lt;br /&gt;
  8  FROM employee;&lt;br /&gt;
ENAME             SAL         N2         N3         N4         N5         N6         N8&lt;br /&gt;
---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------&lt;br /&gt;
Alison                         1          1          1          1          1          1&lt;br /&gt;
Robert                         1          1          1          1          1          2&lt;br /&gt;
David                          1          1          2          2          2          3&lt;br /&gt;
Celia           58000          1          2          2          2          3          4&lt;br /&gt;
Linda           53000          2          2          3          3          4          5&lt;br /&gt;
James           32000          2          3          3          4          5          6&lt;br /&gt;
Jode            29000          2          3          4          5          6          7&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;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>