Opa,
segue um exemplo =>
SELECT cd_days    FROM    (SELECT cd_days, ROW_NUMBER() OVER (ORDER BY cd_days) 
R      from teste d      where cd_marca = 2 AND d.contract_type = 'GERAL'       
 and d.logistic_contract is not NULL)   WHERE R BETWEEN 10 and 20;  

Abs, 
 

    Em Quarta-feira, 3 de Janeiro de 2018 13:04, "[email protected] 
[oracle_br]" <[email protected]> escreveu:
 

     Pra não ficar só no bláblablá, vamos a um exemplo -  suponha que eu quero 
agrupar por departamento, e para cada departamento eu quero ordenar por Salário 
e mostrar os 3 primeiros salários, e tenho os seguintes dados :

scott@DESENV:SQL>select deptno, empno, sal from emp order by deptno, sal;

   DEPTNO     EMPNO       SAL
--------- --------- ---------
       10      7934      1300
       10      7782      2450
       10      7839      5000
       20      7369       800
       20      7876      1100
       20      7566      2975
       20      7788      3000
       20      7902      3000
       30      7900       950
       30      7654      1250
       30      7521      1250
       30      7844      1500
       30      7499      1600
       30      7698      2850

14 linhas selecionadas.

PERCEBA que para o departamento 30 o segundo e o terceiro salário empataram, 
ambos recebem 1250... Aí vem a pergunta, o que faço nesse caso ? Se vc quer 
simplesmente mostrar os 3 salarios ordenados SEM se importar com desempates 
seria simplesmente atribuir um número sequencial pra cada registro dentro do 
grupo E filtrar depois onde esse número seja < 4 (ou <= 3, como preferir).... 
Tipo :

scott@DESENV:SQL>SELECT deptno,
  2          empno,
  3          sal,
  4          row_number() OVER (PARTITION BY deptno ORDER BY sal) AS NUM_REG
  5*  FROM   emp;
  
   DEPTNO     EMPNO       SAL   NUM_REG
--------- --------- --------- ---------
       10      7934      1300         1
       10      7782      2450         2
       10      7839      5000         3
       20      7369       800         1
       20      7876      1100         2
       20      7566      2975         3
       20      7788      3000         4
       20      7902      3000         5
       30      7900       950         1
       30      7654      1250         2
       30      7521      1250         3
       30      7844      1500         4
       30      7499      1600         5
       30      7698      2850         6

14 linhas selecionadas.

scott@DESENV:SQL>

==> Tá vendo ? Os registros foram AGRUPADOS por DEPTNO e o NUM_REG é resetado a 
cada vez que muda de DEPTO, essa lógica é Automágica nas funções analíticas.... 
Vamos filtrar por esse número, para receber só os 3 primeiros registros do 
grupo ? Isso vai ficar :

scott@DESENV:SQL>select * from (
  2   SELECT deptno,
  3          empno,
  4          sal,
  5          row_number() OVER (PARTITION BY deptno ORDER BY sal) AS NUM_REG
  6    FROM   emp  )
  7* WHERE NUM_REG < 4;

   DEPTNO     EMPNO       SAL   NUM_REG
--------- --------- --------- ---------
       10      7934      1300         1
       10      7782      2450         2
       10      7839      5000         3
       20      7369       800         1
       20      7876      1100         2
       20      7566      2975         3
       30      7900       950         1
       30      7521      1250         2
       30      7654      1250         3

9 linhas selecionadas.

scott@DESENV:SQL>

Simples, só encapsulei o agrupamento num sub-query para poder aplicar um WHERE 
nele... Não é ? SE é isso que vc quer (simplesmente listar os 3 primeiros 
dentro de cada grupo, SEM se preocupar com empates) tá feita a fofoca... 

Já se neste meu exemplo eu quisesse que quando houvesse empate (por exemplo, no 
depto 30 a terceira linha fosse o salário  1500, desconsiderando o empate em 
1250) aí eu usaria algo tipo DENSE_RANK :

scott@DESENV:SQL>SELECT deptno,
  2          empno,
  3          sal,
  4          dense_rank() OVER (PARTITION BY deptno ORDER BY sal) AS NUM_REG
  5*   FROM   emp
scott@DESENV:SQL>/

   DEPTNO     EMPNO       SAL   NUM_REG
--------- --------- --------- ---------
       10      7934      1300         1
       10      7782      2450         2
       10      7839      5000         3
       20      7369       800         1
       20      7876      1100         2
       20      7566      2975         3
       20      7788      3000         4
       20      7902      3000         4
       30      7900       950         1
       30      7654      1250         2
       30      7521      1250         2
       30      7844      1500         3
       30      7499      1600         4
       30      7698      2850         5

14 linhas selecionadas.

scott@DESENV:SQL>

==>> PERCEBA que no departamento 30 a segunda posição foi um empate, ambos 
'dividiram o pódio' na medalha de prata....Sacou ?? É ISSO que eu solicitei que 
vc verificasse com teu Analista pra saber se é o que ele quer - via de regra, 
99,99% das vezes quando neguim fala em N primeiros ou N últimos registros não 
pensam nesses pontos de DESEMPATE....

[]s

  Chiappa  #yiv0849792652 #yiv0849792652 -- #yiv0849792652ygrp-mkp {border:1px 
solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv0849792652 
#yiv0849792652ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv0849792652 
#yiv0849792652ygrp-mkp #yiv0849792652hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv0849792652 #yiv0849792652ygrp-mkp #yiv0849792652ads 
{margin-bottom:10px;}#yiv0849792652 #yiv0849792652ygrp-mkp .yiv0849792652ad 
{padding:0 0;}#yiv0849792652 #yiv0849792652ygrp-mkp .yiv0849792652ad p 
{margin:0;}#yiv0849792652 #yiv0849792652ygrp-mkp .yiv0849792652ad a 
{color:#0000ff;text-decoration:none;}#yiv0849792652 #yiv0849792652ygrp-sponsor 
#yiv0849792652ygrp-lc {font-family:Arial;}#yiv0849792652 
#yiv0849792652ygrp-sponsor #yiv0849792652ygrp-lc #yiv0849792652hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv0849792652 
#yiv0849792652ygrp-sponsor #yiv0849792652ygrp-lc .yiv0849792652ad 
{margin-bottom:10px;padding:0 0;}#yiv0849792652 #yiv0849792652actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv0849792652 
#yiv0849792652activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv0849792652
 #yiv0849792652activity span {font-weight:700;}#yiv0849792652 
#yiv0849792652activity span:first-child 
{text-transform:uppercase;}#yiv0849792652 #yiv0849792652activity span a 
{color:#5085b6;text-decoration:none;}#yiv0849792652 #yiv0849792652activity span 
span {color:#ff7900;}#yiv0849792652 #yiv0849792652activity span 
.yiv0849792652underline {text-decoration:underline;}#yiv0849792652 
.yiv0849792652attach 
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 
0;width:400px;}#yiv0849792652 .yiv0849792652attach div a 
{text-decoration:none;}#yiv0849792652 .yiv0849792652attach img 
{border:none;padding-right:5px;}#yiv0849792652 .yiv0849792652attach label 
{display:block;margin-bottom:5px;}#yiv0849792652 .yiv0849792652attach label a 
{text-decoration:none;}#yiv0849792652 blockquote {margin:0 0 0 
4px;}#yiv0849792652 .yiv0849792652bold 
{font-family:Arial;font-size:13px;font-weight:700;}#yiv0849792652 
.yiv0849792652bold a {text-decoration:none;}#yiv0849792652 dd.yiv0849792652last 
p a {font-family:Verdana;font-weight:700;}#yiv0849792652 dd.yiv0849792652last p 
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv0849792652 
dd.yiv0849792652last p span.yiv0849792652yshortcuts 
{margin-right:0;}#yiv0849792652 div.yiv0849792652attach-table div div a 
{text-decoration:none;}#yiv0849792652 div.yiv0849792652attach-table 
{width:400px;}#yiv0849792652 div.yiv0849792652file-title a, #yiv0849792652 
div.yiv0849792652file-title a:active, #yiv0849792652 
div.yiv0849792652file-title a:hover, #yiv0849792652 div.yiv0849792652file-title 
a:visited {text-decoration:none;}#yiv0849792652 div.yiv0849792652photo-title a, 
#yiv0849792652 div.yiv0849792652photo-title a:active, #yiv0849792652 
div.yiv0849792652photo-title a:hover, #yiv0849792652 
div.yiv0849792652photo-title a:visited {text-decoration:none;}#yiv0849792652 
div#yiv0849792652ygrp-mlmsg #yiv0849792652ygrp-msg p a 
span.yiv0849792652yshortcuts 
{font-family:Verdana;font-size:10px;font-weight:normal;}#yiv0849792652 
.yiv0849792652green {color:#628c2a;}#yiv0849792652 .yiv0849792652MsoNormal 
{margin:0 0 0 0;}#yiv0849792652 o {font-size:0;}#yiv0849792652 
#yiv0849792652photos div {float:left;width:72px;}#yiv0849792652 
#yiv0849792652photos div div {border:1px solid 
#666666;min-height:62px;overflow:hidden;width:62px;}#yiv0849792652 
#yiv0849792652photos div label 
{color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv0849792652
 #yiv0849792652reco-category {font-size:77%;}#yiv0849792652 
#yiv0849792652reco-desc {font-size:77%;}#yiv0849792652 .yiv0849792652replbq 
{margin:4px;}#yiv0849792652 #yiv0849792652ygrp-actbar div a:first-child 
{margin-right:2px;padding-right:5px;}#yiv0849792652 #yiv0849792652ygrp-mlmsg 
{font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv0849792652 
#yiv0849792652ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv0849792652 
#yiv0849792652ygrp-mlmsg select, #yiv0849792652 input, #yiv0849792652 textarea 
{font:99% Arial, Helvetica, clean, sans-serif;}#yiv0849792652 
#yiv0849792652ygrp-mlmsg pre, #yiv0849792652 code {font:115% 
monospace;}#yiv0849792652 #yiv0849792652ygrp-mlmsg * 
{line-height:1.22em;}#yiv0849792652 #yiv0849792652ygrp-mlmsg #yiv0849792652logo 
{padding-bottom:10px;}#yiv0849792652 #yiv0849792652ygrp-msg p a 
{font-family:Verdana;}#yiv0849792652 #yiv0849792652ygrp-msg 
p#yiv0849792652attach-count span {color:#1E66AE;font-weight:700;}#yiv0849792652 
#yiv0849792652ygrp-reco #yiv0849792652reco-head 
{color:#ff7900;font-weight:700;}#yiv0849792652 #yiv0849792652ygrp-reco 
{margin-bottom:20px;padding:0px;}#yiv0849792652 #yiv0849792652ygrp-sponsor 
#yiv0849792652ov li a {font-size:130%;text-decoration:none;}#yiv0849792652 
#yiv0849792652ygrp-sponsor #yiv0849792652ov li 
{font-size:77%;list-style-type:square;padding:6px 0;}#yiv0849792652 
#yiv0849792652ygrp-sponsor #yiv0849792652ov ul {margin:0;padding:0 0 0 
8px;}#yiv0849792652 #yiv0849792652ygrp-text 
{font-family:Georgia;}#yiv0849792652 #yiv0849792652ygrp-text p {margin:0 0 1em 
0;}#yiv0849792652 #yiv0849792652ygrp-text tt {font-size:120%;}#yiv0849792652 
#yiv0849792652ygrp-vital ul li:last-child {border-right:none 
!important;}#yiv0849792652 

   

Responder a