Skip to content
pvmehta.com

pvmehta.com

  • Home
  • About Me
  • Toggle search form
  • pvmehta.com SQL scripts
    Find which sessions is accessing object that prevent your session to have exclusive locks in Oracle Oracle
  • find_encr_wallet.sql Uncategorized
  • Test Case for Inserting Multiple (2.3 Million rows in 26 Seconds) Oracle
  • Changing the Global Database Name Oracle
  • plan10g.sql good1 Oracle
  • Oracle10g – Using SQLAccess Advisor (DBMS_ADVISOR) with the Automatic Workload Repository Oracle
  • get_vmstat.ksh for Solaris Oracle
  • Restoring a user’s original password 1051962.101 Oracle
  • scripts to take listener.log backup Linux/Unix
  • chk_space_SID.ksh Linux/Unix
  • Formatter Explain plan Output 1 Oracle
  • Standby Database Behavior when a Datafile is Resized on the Primary Database Note:123883.1 Oracle
  • oradebug ipcrm ipcs Oracle
  • Removing first line Linux/Unix
  • Creating never expiring DB user accounts in Oracle Oracle

TOP-N Sql to find Nth max or Top N rows

Posted on 01-May-2007 By Admin No Comments on TOP-N Sql to find Nth max or Top N rows

PURPOSE

This note explains the TOP-N Query, a new feature (as of 8.1.5) that allows

users to query on ROWNUM and order results with ORDER BY. This functionality

is similar to the offerings of other database software such as the “Top

Values’ property option in Microsoft Access.

Top-N Query to Solve ORDER BY…ROWNUM Inaccuracy:

==================================================

What is a Top-N Query?

———————-

Top-N queries use a consistent nested query structure to show the largest or

smallest values of a column. For example, what are the 10 best selling products,

what are the 10 worst selling products?

Top-N queries are useful in scenarios where we need to find the top-n or

bottom-n records from a table based on a condition.

The syntax for a Top-N query is:

SELECT [column_list], ROWNUM

FROM (SELECT [column_list] FROM table

ORDER BY Top-N_column)

WHERE ROWNUM <= N; A subquery or an inline view generates the list of sorted data. The subquery
includes the ORDER BY clause to ensure that the ranking is in the desired

order. The outer query is used to limit the number of rows in the final result

set. The ROWNUM pseudo-column assigns a sequential value starting with 1 to

each of the rows returned from the subquery. A WHERE clause with ROWNUM

specifies the n rows to be returned.

‘Select ROWNUM…ORDER BY’ Returns Correct Results with TOP-N Query:

——————————————————————–

You want to issue a query to return rows based on a specific value. For

example, you want to see the rows for the 10 highest paid employees. You issue

a query similar to:

SQL> select empno, ename, sal

from emp

where rownum <=10
order by sal desc;

However, you know that the results this query returns are not correct.

In 8.1.5.x and greater you can restructure the query as follows:

SQL> select empno, ename, sal

from

(select empno, ename, sal

from emp

order by sal desc)

where rownum <=10; This is a TOP-N Query. Structuring the query in this manner allows Oracle to
use SQL operations in the proper order to return the proper results. The nested

query first selects ALL rows from the table and sorts them in descending order

of the sal column.

Oracle, SQL scripts

Post navigation

Previous Post: Session_info.ksh
Next Post: DBMS_Shared_pool pinning triggers

Related Posts

  • Absolute file number and relative file number Oracle
  • Good RAC & Standby Notes Oracle
  • How to find password change date for user Oracle
  • dbinv.sql Oracle
  • Good links for x$ tables in oracle. Oracle
  • DBA_HIST_SQLSTAT contents Oracle

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Categories

  • Ansible (0)
  • AWS (2)
  • Azure (1)
  • Django (0)
  • GIT (1)
  • Linux/Unix (150)
  • MYSQL (5)
  • Oracle (403)
  • PHP/MYSQL/Wordpress (10)
  • POSTGRESQL (1)
  • Power-BI (0)
  • Python/PySpark (7)
  • RAC (18)
  • rman-dataguard (26)
  • shell (151)
  • SQL scripts (349)
  • SQL Server (6)
  • Uncategorized (5)
  • Videos (0)

Recent Posts

  • Key Management in Oracle: The Core Issue: Missing Master Key12-May-2026
  • SAT Mathematics 10 questions and answer at the end.30-Apr-2026
  • top 10 AI news today30-Apr-2026
  • runon_allpdbs_show_conname.sh23-Apr-2026
  • runon_allcdbs_find_pdbs.sh23-Apr-2026
  • Running PDB on single node in RAC09-Apr-2026
  • find_arc.sql09-Apr-2026
  • pvm_pre_change.sql08-Apr-2026
  • find_encr_wallet.sql08-Apr-2026
  • find_pdbs.sql08-Apr-2026

Archives

  • 2026
  • 2025
  • 2024
  • 2023
  • 2010
  • 2009
  • 2008
  • 2007
  • 2006
  • 2005
  • Create type and Grant on it. Oracle
  • ORA-8031 issue and solution if it is occuring due to truncate. Oracle
  • PLSQL Table Syntax 1 Oracle
  • AWR license Oracle
  • How to Make Trace Files Created by Oracle Readable by All Users ? Oracle
  • Check SQL Server edition SQL Server
  • New Latest Param.sql for finding all hidden parameters also Oracle
  • plan10g.sql good Oracle

Copyright © 2026 pvmehta.com.

Powered by PressBook News WordPress theme