Connecting Tech Pros Worldwide Forums | Help | Site Map

CUME_DIST Function.

debasisdas's Avatar
Moderator
 
Join Date: Dec 2006
Location: Bangalore ,India
Posts: 7,511
#1   Jul 3 '07
CUME_DIST:-
=============
THIS FUNCTION CALCULATES THE RATIO OF THE NUMBER OF ROWS THAT HAVE A LESSER OR EQUAL RANKING TO THE TOTAL NO OF ROWS IN THE PARTITION.

PERCENT_RANK:-THIS FUNCTION CALCULATES THE RATIO OF THE ROW'S RANKING TO THE NUMBER OF ROWS IN THE PARTITION USING THE FORMULA
(RRP-1)/(NRP-1)
RRP-RANK OF ROW IN PARTITION.
NRP-NUMBER OF ROW IN PARTITION.
BOTH OF THESE FUNCTIONS UTILIZE DENSE_RANK FOR THEIR RANKINGS AND CAN BE SPECIFIED TO BE IN ASCENDING OR IN DESCNDING ORDER.

Sample Example #1
----------------------------------
Expand|Select|Wrap|Line Numbers
  1. SELECT DEPTNO,EMPNO,SUM(SAL) SALARY,
  2. CUME_DIST() OVER(ORDER BY SUM(SAL)DESC)CUM_SAL,
  3. PERCENT_RANK() OVER (ORDER BY SUM(SAL)DESC)PER_SAL
  4. FROM EMP
  5. GROUP BY DEPTNO,EMPNO
  6. ORDER BY SALARY DESC;
Sample Example #2
----------------------------------
Expand|Select|Wrap|Line Numbers
  1. SELECT EMPNO,SUM(SAL) SALARY,
  2. RANK() OVER(ORDER BY SUM(SAL) DESC) RANK,
  3. DENSE_RANK() OVER(ORDER BY SUM(SAL) DESC)DENSE_RANK,
  4. CUME_DIST() OVER(ORDER BY SUM(SAL)DESC)CUM_SAL,
  5. PERCENT_RANK() OVER (ORDER BY SUM(SAL)DESC)PER_SAL
  6. FROM EMP
  7. GROUP BY EMPNO
  8. ORDER BY RANK;
Sample Example #3
-----------------------------------
WHERE EMPLOYEE GETTING SALARY 3000 IS RANKED.
------------------------------------------------------------------------------------------
Expand|Select|Wrap|Line Numbers
  1. SELECT 
  2. RANK(3000) WITHIN GROUP
  3. (ORDER BY SUM(SAL) DESC) HYP_RANK,
  4. DENSE_RANK(3000) WITHIN GROUP
  5. (ORDER BY SUM(SAL) DESC) HYP_D_RANK,
  6. CUME_DIST(3000) WITHIN GROUP
  7. (ORDER BY SUM(SAL) DESC) HYP_CUM_RANK,
  8. PERCENT_RANK(3000) WITHIN GROUP
  9. (ORDER BY SUM(SAL) DESC ) HYP_PER_RANK
  10. FROM EMP
  11. GROUP BY EMPNO;
THE "WITHIN GROUP" CLAUSE HAS THE EFFECT OF INJECTING A FICTITIOUS ROW INTO THE RESULT SET BEFORE DETERMINING THE RANKING.



Reply