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