Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Limitting result without ROWNUM

Re: Limitting result without ROWNUM

From: Charles Hooper <hooperc2000_at_yahoo.com>
Date: 22 Jan 2007 04:38:51 -0800
Message-ID: <1169469531.085224.78800@l53g2000cwa.googlegroups.com>


Gerard H. Pille wrote:

> Charles Hooper schreef:
>
> >
> > Nice solution - one that I had not considered.  Above is the 11th
> > solution provided to this problem.
> >
> > Dieter Noeth provided solution #12 (I had to change "t1 AS t2" to "t1
> > t2" before it would execute)
> >
> > Method #13 (loosely inspired by the above SQL statement):
>
> > Charles Hooper
> > PC Support Specialist
> > K&M Machine-Fabricating, Inc.
>
> Come on Charles, don't keep us waiting:  trace them and let us know
> which one provides the best performance.  Adding in index on size would
> probably help mine.

Don't be surprised if Oracle "fixed" some of the SQL solutions. The results will likely be different with a much larger data set - raw output follows:

--------SQL 1--------

         2 SUSAN                SMITH                        65
20
         3 DOROTHY              SMITH                        62
21
         4 JOHN                 SMITH                        72
35
         5 DAVID                SMITH                        73
34
         7 ROBERT               SMITH                        76
45
        10 SUSAN                JOHNSON                    65.5
20
        11 DOROTHY              JOHNSON                    62.5
21
        12 JOHN                 JOHNSON                    72.5
35
        13 DAVID                JOHNSON                    73.5
34
        15 ROBERT               JOHNSON                      79
45
SQL_ID gcrmpdaxsaq0v, child number 0

SELECT /*+ GATHER_PLAN_STATISTICS */ ID, FIRSTNAME, LASTNAME, HEIGHT,
  AGE FROM (SELECT LAG(ID,1,-1) OVER (ORDER BY HEIGHT DESC) SIGNAL, HEIGHT END_HEIGHT,     LEAD
(HEIGHT,9,0) OVER (ORDER BY HEIGHT DESC) START_HEIGHT FROM T1) R, T1 WHERE R.SIGNAL=-1   AND T1
.HEIGHT BETWEEN R.START_HEIGHT AND R.END_HEIGHT Plan hash value: 965685642



| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Bu
ffers | OMem | 1Mem | Used-Mem |



| 1 | NESTED LOOPS | | 1 | 1 | 10 |00:00:00.01 |

   15 | | | |

| 2 | TABLE ACCESS FULL | T1 | 1 | 1 | 16 |00:00:00.01 |

    8 | | | |

|* 3 | VIEW | | 16 | 1 | 10 |00:00:00.01 |

    7 | | | |

| 4 | WINDOW SORT | | 16 | 1 | 256 |00:00:00.01 |

    7 | 2048 | 2048 | 2048 (0)|

| 5 | TABLE ACCESS FULL| T1 | 1 | 1 | 16 |00:00:00.01 |

    7 | | | |



Predicate Information (identified by operation id):


   3 - filter(("R"."SIGNAL"=(-1) AND "T1"."HEIGHT">="R"."START_HEIGHT" AND
              "T1"."HEIGHT"<="R"."END_HEIGHT"))

--------SQL 2--------

        15 ROBERT               JOHNSON                      79
45
         7 ROBERT               SMITH                        76
45
        13 DAVID                JOHNSON                    73.5
34
         5 DAVID                SMITH                        73
34
        12 JOHN                 JOHNSON                    72.5
35
         4 JOHN                 SMITH                        72
35
        10 SUSAN                JOHNSON                    65.5
20
         2 SUSAN                SMITH                        65
20
        11 DOROTHY              JOHNSON                    62.5
21
         3 DOROTHY              SMITH                        62
21
SQL_ID bhrbngtwk242x, child number 0

SELECT /*+ GATHER_PLAN_STATISTICS */ T1.ID, FIRSTNAME, LASTNAME, HEIGH
T, AGE FROM (SELECT ID, PERCENT_RANK() OVER (ORDER BY T1.HEIGHT DESC) POSITION, TR.TOTAL_ROW
S FROM (SELECT COUNT(*) TOTAL_ROWS FROM T1) TR, T1) TR, T1 WHERE TR.POSITION<
=(10/TR.TOTAL_ROWS) AND TR.ID=T1.ID

Plan hash value: 3064809015



| Id  | Operation                | Name | Starts | E-Rows | A-Rows |
A-Time
| Buffers | OMem | 1Mem | Used-Mem |

|*  1 |  HASH JOIN               |      |      1 |      1 |     10
|00:00:00.01
|      21 |   963K|   963K| 1045K (0)|



|   2 |   TABLE ACCESS FULL      | T1   |      1 |      1 |     16
|00:00:00.01
|       7 |       |       |          |



|*  3 |   VIEW                   |      |      1 |      1 |     10
|00:00:00.01
|      14 |       |       |          |



|   4 |    WINDOW SORT           |      |      1 |      1 |     16
|00:00:00.01
|      14 |  2048 |  2048 | 2048  (0)|



|   5 |     MERGE JOIN CARTESIAN |      |      1 |      1 |     16
|00:00:00.01
|      14 |       |       |          |



|   6 |      TABLE ACCESS FULL   | T1   |      1 |      1 |     16
|00:00:00.01
|       7 |       |       |          |



|   7 |      BUFFER SORT         |      |     16 |      1 |     16
|00:00:00.01
|       7 |  9216 |  9216 | 8192  (0)|



|   8 |       VIEW               |      |      1 |      1 |      1
|00:00:00.01
|       7 |       |       |          |



|   9 |        SORT AGGREGATE    |      |      1 |      1 |      1
|00:00:00.01
|       7 |       |       |          |



|  10 |         TABLE ACCESS FULL| T1   |      1 |      1 |     16
|00:00:00.01
|       7 |       |       |          |




--------------------------------------------------------------------------------
--------------------------------------

Predicate Information (identified by operation id):


   1 - access("TR"."ID"="T1"."ID")

   3 - filter("TR"."POSITION"<=10/"TR"."TOTAL_ROWS")

--------SQL 3--------

        15 ROBERT               JOHNSON                      79
45
         7 ROBERT               SMITH                        76
45
        13 DAVID                JOHNSON                    73.5
34
         5 DAVID                SMITH                        73
34
        12 JOHN                 JOHNSON                    72.5
35
         4 JOHN                 SMITH                        72
35
        10 SUSAN                JOHNSON                    65.5
20
         2 SUSAN                SMITH                        65
20
        11 DOROTHY              JOHNSON                    62.5
21
         3 DOROTHY              SMITH                        62
21
SQL_ID 27sb5vv9m0p9d, child number 0

SELECT /*+ GATHER_PLAN_STATISTICS */ R.ID, FIRSTNAME, LASTNAME,   HEIGHT
, AGE FROM (SELECT ID,     ROW_NUMBER() OVER (ORDER BY HEIGHT DESC) POSITION FROM T1) R,   T1 WHE
RE R.POSITION<=10 AND

R.ID=T1.ID

Plan hash value: 1204849371



| Id  | Operation                 | Name | Starts | E-Rows | A-Rows |
A-Time
 | Buffers | OMem | 1Mem | Used-Mem |

|*  1 |  HASH JOIN                |      |      1 |      1 |     10
|00:00:00.01
 |      14 |   963K|   963K| 1045K (0)|



|   2 |   TABLE ACCESS FULL       | T1   |      1 |      1 |     16
|00:00:00.01
 |       7 |       |       |          |



|*  3 |   VIEW                    |      |      1 |      1 |     10
|00:00:00.01
 |       7 |       |       |          |



|*  4 |    WINDOW SORT PUSHED RANK|      |      1 |      1 |     11
|00:00:00.01
 |       7 |  9216 |  9216 | 8192  (0)|



|   5 |     TABLE ACCESS FULL     | T1   |      1 |      1 |     16
|00:00:00.01
 |       7 |       |       |          |




--------------------------------------------------------------------------------
---------------------------------------

Predicate Information (identified by operation id):


   1 - access("R"."ID"="T1"."ID")

   3 - filter("R"."POSITION"<=10)

   4 - filter(ROW_NUMBER() OVER ( ORDER BY INTERNAL_FUNCTION("HEIGHT") DESC )<=1
0)

--------SQL 4--------

        15 ROBERT               JOHNSON                      79
45
         7 ROBERT               SMITH                        76
45
        13 DAVID                JOHNSON                    73.5
34
         5 DAVID                SMITH                        73
34
        12 JOHN                 JOHNSON                    72.5
35
         4 JOHN                 SMITH                        72
35
        10 SUSAN                JOHNSON                    65.5
20
         2 SUSAN                SMITH                        65
20
        11 DOROTHY              JOHNSON                    62.5
21
         3 DOROTHY              SMITH                        62
21
SQL_ID 8689w6f7pf5zk, child number 0

SELECT /*+ GATHER_PLAN_STATISTICS */ ID, FIRSTNAME, LASTNAME, HEIGHT,
  AGE FROM (SELECT ID,   FIRSTNAME, LASTNAME, HEIGHT, AGE, (FIRST_VALUE(HEIGHT) OVER (O
RDER BY HEIGHT DESC))*HEIGHT MY_PROD, MAX_PROD FROM (SELECT MAX(PROD) MAX_PROD FROM
 (SELECT HEIGHT*LEAD(HEIGHT,9,0) OVER (ORDER BY HEIGHT DESC) PROD FROM     T1))
, T1) WHERE MY_PROD>=MAX_PROD Plan hash value: 3191157405



| Id  | Operation                 | Name | Starts | E-Rows | A-Rows |
A-Time
 | Buffers | OMem | 1Mem | Used-Mem |

|*  1 |  VIEW                     |      |      1 |      1 |     10
|00:00:00.01
 |      14 |       |       |          |



|   2 |   WINDOW SORT             |      |      1 |      1 |     16
|00:00:00.01
 |      14 |  2048 |  2048 | 2048  (0)|



|   3 |    MERGE JOIN CARTESIAN   |      |      1 |      1 |     16
|00:00:00.01
 |      14 |       |       |          |



|   4 |     TABLE ACCESS FULL     | T1   |      1 |      1 |     16
|00:00:00.01
 |       7 |       |       |          |



|   5 |     BUFFER SORT           |      |     16 |      1 |     16
|00:00:00.01
 |       7 |  9216 |  9216 | 8192  (0)|



|   6 |      VIEW                 |      |      1 |      1 |      1
|00:00:00.01
 |       7 |       |       |          |



|   7 |       SORT AGGREGATE      |      |      1 |      1 |      1
|00:00:00.01
 |       7 |       |       |          |



|   8 |        VIEW               |      |      1 |      1 |     16
|00:00:00.01
 |       7 |       |       |          |



|   9 |         WINDOW SORT       |      |      1 |      1 |     16
|00:00:00.01
 |       7 |  2048 |  2048 | 2048  (0)|



|  10 |          TABLE ACCESS FULL| T1   |      1 |      1 |     16
|00:00:00.01
 |       7 |       |       |          |




--------------------------------------------------------------------------------
---------------------------------------

Predicate Information (identified by operation id):


   1 - filter("MY_PROD">="MAX_PROD")

--------SQL 5--------

         2 SUSAN                SMITH                        65
20
         3 DOROTHY              SMITH                        62
21
         4 JOHN                 SMITH                        72
35
         5 DAVID                SMITH                        73
34
         7 ROBERT               SMITH                        76
45
        10 SUSAN                JOHNSON                    65.5
20
        11 DOROTHY              JOHNSON                    62.5
21
        12 JOHN                 JOHNSON                    72.5
35
        13 DAVID                JOHNSON                    73.5
34
        15 ROBERT               JOHNSON                      79
45
SQL_ID fj8kscbh6101p, child number 0

SELECT /*+ GATHER_PLAN_STATISTICS */ ID, FIRSTNAME, LASTNAME, HEIGHT,
  AGE FROM T1 MINUS SELECT ID, FIRSTNAME, LASTNAME, HEIGHT, AGE FROM (SELECT  RANK()
OVER (ORDER BY HEIGHT)/COUNT(*) OVER (PARTITION BY 1) ROW_PERCENT, (COUNT(*) OVER (PARTITIO
N BY 1)-10)/COUNT(*) OVER

(PARTITION BY 1) CUT_OFF,     ID,     FIRSTNAME,     LASTNAME,
HEIGHT,     A
GE   FROM     T1) WHERE



ROW_PERCENT<=CUT_OFF

Plan hash value: 1588766026



| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time |
Buffers | OMem | 1Mem | Used-Mem |



|   1 |  MINUS                 |      |      1 |        |     10
|00:00:00.01 |
     14 |       |       |          |



|   2 |   SORT UNIQUE          |      |      1 |      1 |     16
|00:00:00.01 |
      7 |  9216 |  9216 | 8192  (0)|



|   3 |    TABLE ACCESS FULL   | T1   |      1 |      1 |     16
|00:00:00.01 |
      7 |       |       |          |



|   4 |   SORT UNIQUE          |      |      1 |      1 |      6
|00:00:00.01 |
      7 |  9216 |  9216 | 8192  (0)|



|*  5 |    VIEW                |      |      1 |      1 |      6
|00:00:00.01 |
      7 |       |       |          |



|   6 |     WINDOW SORT        |      |      1 |      1 |     16
|00:00:00.01 |
      7 |  2048 |  2048 | 2048  (0)|



|   7 |      WINDOW BUFFER     |      |      1 |      1 |     16
|00:00:00.01 |
      7 |  2048 |  2048 | 2048  (0)|



|   8 |       TABLE ACCESS FULL| T1   |      1 |      1 |     16
|00:00:00.01 |
      7 |       |       |          |




--------------------------------------------------------------------------------
------------------------------------

Predicate Information (identified by operation id):


   5 - filter("ROW_PERCENT"<="CUT_OFF")

--------SQL 6--------

         3 DOROTHY              SMITH                        62
21
        11 DOROTHY              JOHNSON                    62.5
21
         2 SUSAN                SMITH                        65
20
        10 SUSAN                JOHNSON                    65.5
20
         4 JOHN                 SMITH                        72
35
        12 JOHN                 JOHNSON                    72.5
35
         5 DAVID                SMITH                        73
34
        13 DAVID                JOHNSON                    73.5
34
         7 ROBERT               SMITH                        76
45
        15 ROBERT               JOHNSON                      79
45
SQL_ID 7z2367nrf9qmn, child number 0

SELECT /*+ GATHER_PLAN_STATISTICS */ ID, FIRSTNAME, LASTNAME, HEIGHT,
  AGE FROM (SELECT RANK() OVER (ORDER BY HEIGHT)/COUNT(*) OVER (PARTITION BY 1) ROW_PERCENT, (C
OUNT(*) OVER (PARTITION

BY 1)-10)/COUNT(*) OVER (PARTITION BY 1) CUT_OFF,     ID,
FIRSTNAME,     LAS
TNAME,     HEIGHT,



AGE   FROM     T1) WHERE   ROW_PERCENT>CUT_OFF



Plan hash value: 3210314700



| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Bu
ffers | OMem | 1Mem | Used-Mem |



|*  1 |  VIEW                |      |      1 |      1 |     10
|00:00:00.01 |
    7 |       |       |          |



|   2 |   WINDOW SORT        |      |      1 |      1 |     16
|00:00:00.01 |

    7 | 2048 | 2048 | 2048 (0)|

| 3 | WINDOW BUFFER | | 1 | 1 | 16 |00:00:00.01 |

    7 | 2048 | 2048 | 2048 (0)|

| 4 | TABLE ACCESS FULL| T1 | 1 | 1 | 16 |00:00:00.01 |

    7 | | | |



Predicate Information (identified by operation id):


   1 - filter("ROW_PERCENT">"CUT_OFF")

--------SQL 7--------

        15 ROBERT               JOHNSON                      79
45
         7 ROBERT               SMITH                        76
45
        13 DAVID                JOHNSON                    73.5
34
         5 DAVID                SMITH                        73
34
        12 JOHN                 JOHNSON                    72.5
35
         4 JOHN                 SMITH                        72
35
        10 SUSAN                JOHNSON                    65.5
20
         2 SUSAN                SMITH                        65
20
        11 DOROTHY              JOHNSON                    62.5
21
         3 DOROTHY              SMITH                        62
21
SQL_ID 15qkur1bf390v, child number 0

SELECT /*+ GATHER_PLAN_STATISTICS */ T1.ID, T1.FIRSTNAME, T1.LASTNAME,
 T1.HEIGHT, T1.AGE FROM (SELECT

  MAX(COUNTER) COUNTER   FROM     (SELECT       LEVEL COUNTER     FROM
     DUA
L     CONNECT BY       LEVEL<=10)) C,



 (SELECT     RANK() OVER (ORDER BY HEIGHT DESC) RANKING,     ID,
FIRSTNAME,
    LASTNAME,     HEIGHT,     AGE



FROM     T1) T1 WHERE   T1.RANKING<=C.COUNTER



Plan hash value: 3951221488



| Id  | Operation                        | Name | Starts | E-Rows |
A-Rows | A
-Time | Buffers | OMem | 1Mem | Used-Mem |

|   1 |  NESTED LOOPS                    |      |      1 |      1 |
10 |00:0
0:00.01 |       7 |       |       |          |



|   2 |   VIEW                           |      |      1 |      1 |
 1 |00:0
0:00.01 |       0 |       |       |          |



|   3 |    SORT AGGREGATE                |      |      1 |      1 |
 1 |00:0
0:00.01 |       0 |       |       |          |



|   4 |     VIEW                         |      |      1 |      1 |
10 |00:0
0:00.01 |       0 |       |       |          |



|   5 |      CONNECT BY WITHOUT FILTERING|      |      1 |        |
10 |00:0
0:00.01 |       0 |       |       |          |



|   6 |       FAST DUAL                  |      |      1 |      1 |
 1 |00:0
0:00.01 |       0 |       |       |          |



|*  7 |   VIEW                           |      |      1 |      1 |
10 |00:0
0:00.01 |       7 |       |       |          |



|   8 |    WINDOW SORT                   |      |      1 |      1 |
16 |00:0
0:00.01 |       7 |  2048 |  2048 | 2048  (0)|



|   9 |     TABLE ACCESS FULL            | T1   |      1 |      1 |
16 |00:0
0:00.01 |       7 |       |       |          |




--------------------------------------------------------------------------------
----------------------------------------------

Predicate Information (identified by operation id):


   7 - filter("T1"."RANKING"<="C"."COUNTER")

--------SQL 8--------

        15 ROBERT               JOHNSON                      79
45
         7 ROBERT               SMITH                        76
45
        13 DAVID                JOHNSON                    73.5
34
         5 DAVID                SMITH                        73
34
        12 JOHN                 JOHNSON                    72.5
35
         4 JOHN                 SMITH                        72
35
        10 SUSAN                JOHNSON                    65.5
20
         2 SUSAN                SMITH                        65
20
        11 DOROTHY              JOHNSON                    62.5
21
         3 DOROTHY              SMITH                        62
21
SQL_ID 7mz08gmmb83kx, child number 0

SELECT /*+ GATHER_PLAN_STATISTICS */ ID, FIRSTNAME, LASTNAME, HEIGHT,
  AGE FROM (SELECT ID,

   FIRSTNAME,     LASTNAME,     HEIGHT,     AGE   FROM     T1   ORDER
BY     HEI

GHT DESC) WHERE ROWNUM<=10

Plan hash value: 270731910



| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time |
 Buffers | OMem | 1Mem | Used-Mem |



|* 1 | COUNT STOPKEY | | 1 | | 10 |00:00:00.01 |

       7 | | | |

|   2 |   VIEW                  |      |      1 |      1 |     10
|00:00:00.01 |
       7 |       |       |          |



|*  3 |    SORT ORDER BY STOPKEY|      |      1 |      1 |     10
|00:00:00.01 |
       7 |  9216 |  9216 | 8192  (0)|



|   4 |     TABLE ACCESS FULL   | T1   |      1 |      1 |     16
|00:00:00.01 |
       7 |       |       |          |




--------------------------------------------------------------------------------
-------------------------------------

Predicate Information (identified by operation id):


   1 - filter(ROWNUM<=10)

   3 - filter(ROWNUM<=10)

--------SQL 9--------

        15 ROBERT               JOHNSON                      79
45
         7 ROBERT               SMITH                        76
45
        13 DAVID                JOHNSON                    73.5
34
         5 DAVID                SMITH                        73
34
        12 JOHN                 JOHNSON                    72.5
35
         4 JOHN                 SMITH                        72
35
        10 SUSAN                JOHNSON                    65.5
20
         2 SUSAN                SMITH                        65
20
        11 DOROTHY              JOHNSON                    62.5
21
         3 DOROTHY              SMITH                        62
21
SQL_ID fbttsnj0vd9jh, child number 0

SELECT /*+ GATHER_PLAN_STATISTICS */ T1.ID, T1.FIRSTNAME, T1.LASTNAME,
 T1.HEIGHT, T1.AGE FROM (SELECT     ID, FIRSTNAME, LASTNAME, HEIGHT, AGE, COUNT(*) OVER (ORD
ER BY HEIGHT DESC) POSITION FROM    T1) T1, (SELECT LEVEL COUNTER FROM DUAL CONNECT BY LEVEL<=1
0) C WHERE T1.POSITION=C.COUNTER Plan hash value: 1392848152



| Id  | Operation                      | Name | Starts | E-Rows |
A-Rows | A-T
ime | Buffers | OMem | 1Mem | Used-Mem |

|*  1 |  HASH JOIN                     |      |      1 |      1 |
10 |00:00:
00.01 |       7 |   933K|   933K| 1043K (0)|



|   2 |   VIEW                         |      |      1 |      1 |
16 |00:00:
00.01 |       7 |       |       |          |



|   3 |    WINDOW SORT                 |      |      1 |      1 |
16 |00:00:
00.01 |       7 |  2048 |  2048 | 2048  (0)|



|   4 |     TABLE ACCESS FULL          | T1   |      1 |      1 |
16 |00:00:
00.01 |       7 |       |       |          |



|   5 |   VIEW                         |      |      1 |      1 |
10 |00:00:
00.01 |       0 |       |       |          |



|   6 |    CONNECT BY WITHOUT FILTERING|      |      1 |        |
10 |00:00:
00.01 |       0 |       |       |          |



|   7 |     FAST DUAL                  |      |      1 |      1 |
1 |00:00:
00.01 |       0 |       |       |          |




--------------------------------------------------------------------------------
--------------------------------------------

Predicate Information (identified by operation id):


   1 - access("T1"."POSITION"="C"."COUNTER")

--------SQL 10--------

         2 SUSAN                SMITH                        65
20
         3 DOROTHY              SMITH                        62
21
         4 JOHN                 SMITH                        72
35
         5 DAVID                SMITH                        73
34
         7 ROBERT               SMITH                        76
45
        10 SUSAN                JOHNSON                    65.5
20
        11 DOROTHY              JOHNSON                    62.5
21
        12 JOHN                 JOHNSON                    72.5
35
        13 DAVID                JOHNSON                    73.5
34
        15 ROBERT               JOHNSON                      79
45
SQL_ID f67f4jgmjx70n, child number 0

SELECT /*+ GATHER_PLAN_STATISTICS */ ID, FIRSTNAME, LASTNAME, HEIGHT,
  AGE FROM T1 WHERE HEIGHT> (SELECT MAX(HEIGHT) FROM T1 WHERE HEIGHT< (SELECT

   MAX(H
EIGHT) FROM T1 WHERE HEIGHT< (SELECT MAX(HEIGHT) FROM T1 WHERE HEIGHT < (SELECT MAX(
HEIGHT) FROM T1 WHERE HEIGHT< (SELECT MAX(HEIGHT) FROM T1 WHERE HEIGHT < (SELECT MAX(H
EIGHT) FROM T1 WHERE HEIGHT< (SELECT MAX(HEIGHT) FROM T1 WHERE HEIGHT < (SELECT MAX(
HEIGHT) FROM T1 WHERE HEIGHT< (SELECT MAX(HEIGHT) FROM T1 WHERE HEIGHT < (SELECT MAX(H
EIGHT) FROM T1 WHERE HEIGHT< (SELECT MAX(HEIGHT) FROM T1 )))))))))))

Plan hash value: 1643191997



| Id  | Operation                               | Name | Starts |
E-Rows | A-Row
s | A-Time | Buffers |

|*  1 |  TABLE ACCESS FULL                      | T1   |      1 |
1 |     1
0 |00:00:00.01 |      85 |



|   2 |   SORT AGGREGATE                        |      |      1 |
1 |
1 |00:00:00.01 |      77 |



|*  3 |    TABLE ACCESS FULL                    | T1   |      1 |
1 |
6 |00:00:00.01 |      77 |



|   4 |     SORT AGGREGATE                      |      |      1 |
1 |
1 |00:00:00.01 |      70 |



|*  5 |      TABLE ACCESS FULL                  | T1   |      1 |
1 |
7 |00:00:00.01 |      70 |



|   6 |       SORT AGGREGATE                    |      |      1 |
1 |
1 |00:00:00.01 |      63 |



|*  7 |        TABLE ACCESS FULL                | T1   |      1 |
1 |
8 |00:00:00.01 |      63 |



|   8 |         SORT AGGREGATE                  |      |      1 |
1 |
1 |00:00:00.01 |      56 |



|*  9 |          TABLE ACCESS FULL              | T1   |      1 |
1 |
9 |00:00:00.01 |      56 |



|  10 |           SORT AGGREGATE                |      |      1 |
1 |
1 |00:00:00.01 |      49 |



|* 11 |            TABLE ACCESS FULL            | T1   |      1 |
1 |     1
0 |00:00:00.01 |      49 |



|  12 |             SORT AGGREGATE              |      |      1 |
1 |
1 |00:00:00.01 |      42 |



|* 13 |              TABLE ACCESS FULL          | T1   |      1 |
1 |     1
1 |00:00:00.01 |      42 |



|  14 |               SORT AGGREGATE            |      |      1 |
1 |
1 |00:00:00.01 |      35 |



|* 15 |                TABLE ACCESS FULL        | T1   |      1 |
1 |     1
2 |00:00:00.01 |      35 |



|  16 |                 SORT AGGREGATE          |      |      1 |
1 |
1 |00:00:00.01 |      28 |



|* 17 |                  TABLE ACCESS FULL      | T1   |      1 |
1 |     1
3 |00:00:00.01 |      28 |



|  18 |                   SORT AGGREGATE        |      |      1 |
1 |
1 |00:00:00.01 |      21 |



|* 19 |                    TABLE ACCESS FULL    | T1   |      1 |
1 |     1
4 |00:00:00.01 |      21 |



|  20 |                     SORT AGGREGATE      |      |      1 |
1 |
1 |00:00:00.01 |      14 |



|* 21 |                      TABLE ACCESS FULL  | T1   |      1 |
1 |     1
5 |00:00:00.01 |      14 |



|  22 |                       SORT AGGREGATE    |      |      1 |
1 |
1 |00:00:00.01 |       7 |



|  23 |                        TABLE ACCESS FULL| T1   |      1 |
1 |     1
6 |00:00:00.01 |       7 |




--------------------------------------------------------------------------------
--------------------------

Predicate Information (identified by operation id):


   1 - filter("HEIGHT">)

   3 - filter("HEIGHT"<)

   5 - filter("HEIGHT"<)

   7 - filter("HEIGHT"<)

   9 - filter("HEIGHT"<)

  11 - filter("HEIGHT"<)

  13 - filter("HEIGHT"<)

  15 - filter("HEIGHT"<)

  17 - filter("HEIGHT"<)

  19 - filter("HEIGHT"<)

  21 - filter("HEIGHT"<)

--------SQL 12--------

         2 SUSAN                SMITH                        65
20
         3 DOROTHY              SMITH                        62
21
         4 JOHN                 SMITH                        72
35
         5 DAVID                SMITH                        73
34
         7 ROBERT               SMITH                        76
45
        10 SUSAN                JOHNSON                    65.5
20
        11 DOROTHY              JOHNSON                    62.5
21
        12 JOHN                 JOHNSON                    72.5
35
        13 DAVID                JOHNSON                    73.5
34
        15 ROBERT               JOHNSON                      79
45
SQL_ID 0yj3u9ctd1cf1, child number 0

select /*+ GATHER_PLAN_STATISTICS */ * from T1 where height >= ( select
MIN(height) from T1 c1 where 10 > (select count(*) from T1 c2 where
c2.height > c1.height) )

Plan hash value: 698638760



| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | B
uffers |



|* 1 | TABLE ACCESS FULL | T1 | 1 | 1 | 10 |00:00:00.01 |

   127 |

| 2 | SORT AGGREGATE | | 1 | 1 | 1 |00:00:00.01 |

   119 |

|* 3 | FILTER | | 1 | | 10 |00:00:00.01 |

   119 |

| 4 | TABLE ACCESS FULL | T1 | 1 | 1 | 16 |00:00:00.01 |

     7 |

| 5 | SORT AGGREGATE | | 16 | 1 | 16 |00:00:00.01 |

   112 |

|* 6 | TABLE ACCESS FULL| T1 | 16 | 1 | 120 |00:00:00.01 |

   112 |



Predicate Information (identified by operation id):


   1 - filter("HEIGHT">=)

   3 - filter(<10)

   6 - filter("C2"."HEIGHT">:B1)

--------SQL 12--------

        11 DOROTHY              JOHNSON                    62.5
21
        13 DAVID                JOHNSON                    73.5
34
         2 SUSAN                SMITH                        65
20
         4 JOHN                 SMITH                        72
35
         5 DAVID                SMITH                        73
34
         7 ROBERT               SMITH                        76
45
         3 DOROTHY              SMITH                        62
21
        15 ROBERT               JOHNSON                      79
45
        10 SUSAN                JOHNSON                    65.5
20
        12 JOHN                 JOHNSON                    72.5
35
SQL_ID 07rna05vs1f4u, child number 0

SELECT /*+ GATHER_PLAN_STATISTICS */ t1.* FROM t1 JOIN t1 t2 ON t1.HEIGHT <=
t2.HEIGHT GROUP BY t1.ID, t1.FIRSTNAME,t1.LASTNAME, t1.HEIGHT, t1.AGE HAVING
COUNT(*) <= 10

Plan hash value: 1311652346



| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Bu
ffers |



|* 1 | FILTER | | 1 | | 10 |00:00:00.01 |
  119 |

| 2 | HASH GROUP BY | | 1 | 1 | 16 |00:00:00.01 |
  119 |

| 3 | NESTED LOOPS | | 1 | 1 | 136 |00:00:00.01 |
  119 |

| 4 | TABLE ACCESS FULL| T1 | 1 | 1 | 16 |00:00:00.01 |

    7 |

|* 5 | TABLE ACCESS FULL| T1 | 16 | 1 | 136 |00:00:00.01 |
  112 |



Predicate Information (identified by operation id):


   1 - filter(COUNT(*)<=10)

   5 - filter("T1"."HEIGHT"<="T2"."HEIGHT")

--------SQL 13--------

        10 SUSAN                JOHNSON                    65.5
20
         7 ROBERT               SMITH                        76
45
         4 JOHN                 SMITH                        72
35
        12 JOHN                 JOHNSON                    72.5
35
        13 DAVID                JOHNSON                    73.5
34
        11 DOROTHY              JOHNSON                    62.5
21
         2 SUSAN                SMITH                        65
20
         3 DOROTHY              SMITH                        62
21
         5 DAVID                SMITH                        73
34
        15 ROBERT               JOHNSON                      79
45
SQL_ID bvczdmkuv8pj2, child number 0

SELECT /*+ GATHER_PLAN_STATISTICS */ T1.ID, T1.FIRSTNAME, T1.LASTNAME,
 T1.HEIGHT, T1.AGE FROM T1, (SELECT T1.HEIGHT, COUNT(*) RANKING FROM T1, T1 T2 WHE
RE T1.HEIGHT<=T2.HEIGHT

  GROUP BY T1.HEIGHT HAVING COUNT(*) BETWEEN 1 AND 10) T2 WHERE T1.H
EIGHT=T2.HEIGHT Plan hash value: 228847817



| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time |
Buffers | OMem | 1Mem | Used-Mem |



|* 1 | HASH JOIN | | 1 | 1 | 10 |00:00:00.01 |

    126 | 963K| 963K| 1166K (0)|

| 2 | TABLE ACCESS FULL | T1 | 1 | 1 | 16 |00:00:00.01 |

      7 | | | |

|   3 |   VIEW                 |      |      1 |      1 |     10
|00:00:00.01 |
    119 |       |       |          |



|*  4 |    FILTER              |      |      1 |        |     10
|00:00:00.01 |
    119 |       |       |          |



|   5 |     HASH GROUP BY      |      |      1 |      1 |     16
|00:00:00.01 |
    119 |       |       |          |



|   6 |      NESTED LOOPS      |      |      1 |      1 |    136
|00:00:00.01 |
    119 |       |       |          |



|   7 |       TABLE ACCESS FULL| T1   |      1 |      1 |     16
|00:00:00.01 |
      7 |       |       |          |



|*  8 |       TABLE ACCESS FULL| T1   |     16 |      1 |    136
|00:00:00.01 |
    112 |       |       |          |




--------------------------------------------------------------------------------
------------------------------------

Predicate Information (identified by operation id):


   1 - access("T1"."HEIGHT"="T2"."HEIGHT")

   4 - filter((COUNT(*)>=1 AND COUNT(*)<=10))

   8 - filter("T1"."HEIGHT"<="T2"."HEIGHT")

--------SQL 14--------

        10 SUSAN                JOHNSON                    65.5
20
        15 ROBERT               JOHNSON                      79
45
         7 ROBERT               SMITH                        76
45
         4 JOHN                 SMITH                        72
35
        12 JOHN                 JOHNSON                    72.5
35
        13 DAVID                JOHNSON                    73.5
34
        11 DOROTHY              JOHNSON                    62.5
21
         2 SUSAN                SMITH                        65
20
         3 DOROTHY              SMITH                        62
21
         5 DAVID                SMITH                        73
34
SQL_ID 6mvtmhybc5d4f, child number 0

SELECT /*+ GATHER_PLAN_STATISTICS */ T1.ID, T1.FIRSTNAME, T1.LASTNAME,
 T1.HEIGHT, T1.AGE FROM T1, (SELECT T1.HEIGHT, COUNT(*) OVER (PARTITION BY 1) TOTAL_COUNT,
 COUNT(*) RANKING FROM  T1, T1 T2 WHERE T1.HEIGHT>T2.HEIGHT GROUP BY T1.HEIGHT) T2 WHER
E

(T2.TOTAL_COUNT-T2.RANKING+1) BETWEEN 1 AND 10 AND T2.HEIGHT=T1.HEIGHT Plan hash value: 1648888936



| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time |
Buffers | OMem | 1Mem | Used-Mem |



|* 1 | HASH JOIN | | 1 | 1 | 10 |00:00:00.01 |

    126 | 963K| 963K| 1166K (0)|

| 2 | TABLE ACCESS FULL | T1 | 1 | 1 | 16 |00:00:00.01 |

      7 | | | |

|*  3 |   VIEW                 |      |      1 |      1 |     10
|00:00:00.01 |
    119 |       |       |          |



|   4 |    WINDOW BUFFER       |      |      1 |      1 |     15
|00:00:00.01 |

    119 | 2048 | 2048 | 2048 (0)|

| 5 | HASH GROUP BY | | 1 | 1 | 15 |00:00:00.01 |

    119 | | | |

| 6 | NESTED LOOPS | | 1 | 1 | 120 |00:00:00.01 |

    119 | | | |

| 7 | TABLE ACCESS FULL| T1 | 1 | 1 | 16 |00:00:00.01 |

      7 | | | |

|* 8 | TABLE ACCESS FULL| T1 | 16 | 1 | 120 |00:00:00.01 |

    112 | | | |



Predicate Information (identified by operation id):


   1 - access("T2"."HEIGHT"="T1"."HEIGHT")

   3 - filter(("T2"."TOTAL_COUNT"-"T2"."RANKING"+1>=1 AND "T2"."TOTAL_COUNT"-"T2
"."RANKING"+1<=10))

   8 - filter("T1"."HEIGHT">"T2"."HEIGHT")

--------SQL--------
Charles Hooper
PC Support Specialist
K&M Machine-Fabricating, Inc. Received on Mon Jan 22 2007 - 06:38:51 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US