GROUP
BY
Using group by, we can
create groups of related information.
Columns used in select
must be used with group by, otherwise it was not a group by expression.
Ex:
     SQL> select deptno, sum(sal) from emp
group by deptno;
    DEPTNO  
SUM(SAL)
     ---------- ----------
        10      
8750
        20     
10875
        30      
9400
     SQL> select deptno,job,sum(sal) from
emp group by deptno,job;
     DEPTNO 
JOB         SUM(SAL)
     ---------- ---------   ----------
        10  
CLERK        1300
        10  
MANAGER      2450
        10  
PRESIDENT    5000
        20  
ANALYST      6000
        20  
CLERK        1900
        20  
MANAGER      2975
        30  
CLERK        950
        30  
MANAGER      2850
        30  
SALESMAN     5600
HAVING
This will work as where
clause which can  be used only with group
by because of absence of where clause in group by.
Ex:
     SQL> select deptno,job,sum(sal) tsal
from emp group by deptno,job having sum(sal) > 3000;
              DEPTNO  
JOB              TSAL
   ---------- 
---------      ----------
        10   
PRESIDENT    5000
        20   
ANALYST        6000
        30   
SALESMAN     5600
SQL> select
deptno,job,sum(sal) tsal from emp group by deptno,job having sum(sal) > 3000
         order by job;
   DEPTNO   
JOB          TSAL
 ---------- 
---------    ----------
   20         
ANALYST       6000
   10       
PRESIDENT   5000
   30    
   SALESMAN    5600
ORDER
OF EXECUTION
Ø Group
the rows together based on group by clause.
Ø Calculate
the group functions for each group.
Ø Choose
and eliminate the groups based on the having clause.
Ø Order
the groups based on the specified column.
 
 
No comments:
Post a Comment