Freitag, September 30, 2005

ntile

ntile ist eine der vielen netten (meiner Erinnerung nach in 8i eingeführten) analytischen Funktionen, die das Reporting dramatisch vereinfachen. Die Funktion unterteilt eine Ergebnismenge in n buckets und vergibt die entsprechende bucket number an alle zugehörigen rows.

select OBJECT_NAME,
       OBJECT_ID,
       ntile(5) over (order by OBJECT_ID) range
  from dba_objects
 where rownum < 20
 order by OBJECT_ID

OBJECT_NAME           OBJECT_ID      RANGE
-------------------- ---------- ----------
I_OBJ#                        3          1
I_TS#                         7          1
I_FILE#_BLOCK#                9          1
UET$                         13          1
UNDO$                        15          2
FILE$                        17          2
IND$                         19          2
ICOL$                        20          2
PROXY_ROLE_DATA$             25          3
I_PROXY_ROLE_DATA$_1         26          3
CON$                         28          3
C_COBJ#                      29          3
I_OBJ3                       38          4
I_IND1                       39          4
I_FILE1                      41          4
I_USER1                      44          4
I_CON1                       48          5
I_CDEF2                      51          5
I_CDEF4                      53          5

19 rows selected.

Keine Kommentare:

Kommentar veröffentlichen