cheapest way to access every 15th row in table ordered by timestamp column

  • From: "Stephens, Chris" <Chris.Stephens@xxxxxxx>
  • To: ORACLE-L <oracle-l@xxxxxxxxxxxxx>
  • Date: Wed, 19 Jan 2011 10:20:23 -0600 on Linux 5

We have a lab instrument recording information every 2 seconds into a table.

The scientists pull that data into excel for analysis (I hope to look at this 
excel spreadsheet in the very near future now that I've read chapter 9 of Pro 
Oracle SQL).

They are requesting a view that picks out every 15th row of data going back 30 

Can anyone think of a more efficient way to do it than this:

SELECT x.col,
      FROM ( SELECT col,
                                   rownum rn
                         FROM t
                        WHERE t_stamp >= TRUNC( SYSDATE - 30 )) x
     WHERE MOD( x.rn, 15 ) = 0;

It feels like there should be a better way to do it.


This message is intended for the use of the individual or entity to which it is 
addressed and may contain information that is privileged, confidential and 
exempt from disclosure under applicable law. If the reader of this message is 
not the intended recipient or the employee or agent responsible for delivering 
this message to the intended recipient, you are hereby notified that any 
dissemination, distribution or copying of this communication is strictly 
prohibited. If you have received this communication in error, please notify us 
immediately by email reply.

Other related posts: