0

I need to convert following query to return the specific number of rows from any LOWERBOUND to UPPERBOUND (any N to M).

SELECT * FROM (
  SELECT 
    OWNER||','||HOSTNAME OWNER,
    SubStr(FILENAME,InStr(FILENAME,'/',-1)+1,Length(FILENAME)-InStr(FILENAME,'/',-1)+1)  a, 
    To_Date(SubStr(FILENAME,InStr(filename,'_',1)+1,14),'YYYYMMDDHH24MISS') STARTIME,
    servergrp Server_Group,
    filename, 
    Count(1) b  
  FROM patcheventlog  
  GROUP BY 
    OWNER||','||HOSTNAME ,
    SubStr(FILENAME,InStr(FILENAME,'/',-1)+1,Length(FILENAME)-InStr(FILENAME,'/',-1)+1)  ,  
    To_Date(SubStr(FILENAME,InStr(filename,'_',1)+1,14),'YYYYMMDDHH24MISS') ,
    servergrp,
    filename  
  order by 
    Startime desc 
)
where  
  rownum<=10

By using the aboove rownum concept i can only get the result set from first row to the rownum defined. As above from 1 to 10.

So please help me with this.

Thanks

anishroniyar
  • 96
  • 12

1 Answers1

0

Sample for reference. We need to do the following:

select * from (
select OWNER,a,STARTIME,Server_Group,filename,b ,row_number() over (order by STARTIME desc ) rnm from
(
  SELECT 
    OWNER||','||HOSTNAME OWNER,
    SubStr(FILENAME,InStr(FILENAME,'/',-1)+1,Length(FILENAME)-InStr(FILENAME,'/',-1)+1)  a, 
To_Date(SubStr(FILENAME,InStr(filename,'_',1)+1,14),'YYYYMMDDHH24MISS') STARTIME,
    servergrp Server_Group,
    filename, 
    Count(1) b  
  FROM patcheventlog  
  GROUP BY 
    OWNER||','||HOSTNAME ,
    SubStr(FILENAME,InStr(FILENAME,'/',-1)+1,Length(FILENAME)-InStr(FILENAME,'/',-1)+1)  ,  
    To_Date(SubStr(FILENAME,InStr(filename,'_',1)+1,14),'YYYYMMDDHH24MISS') ,
    servergrp,
    filename 
   ORDER BY 
    Startime desc )
) WHERE rnm BETWEEN 2 AND 7
anishroniyar
  • 96
  • 12
anwaar_hell
  • 756
  • 5
  • 23