2009. 3. 14. 03:07 Program.../Oracle
Oracle Group by 절
---- group by : group by column (컬럼으로 그룹지어라) , 자동적으로 첫번째 컬럼기준 오름차순으로 정렬된다.
select deptno, sum(sal) -- 부서별 sal 합
from EMp
group by deptno;
select job, sum(sal) -- 직종별 sal 합
from EMp
group by job;
select deptno, count(*) -- 부서별 인원합
from emp -- count를 하기위해서는 null이 없는 컬럼을 선택해야하는데 찾으려면 시간이 소요되니
group by deptno -- 대신 *을 사용한다.
select job, count(*) -- 직종별 인원합
from EMp
group by job;
--------------- 연습문제 : 사원테이블에서 성별인원수를 구하시오.
insert into sawon values
(1005,'이영애','8011012234567','2000-03-02');
commit;
select * from SAWON;
select S.성별, count(*) "인원수"
from (select case when substr(minbun,7,1) in ('1','3') then '남'
else '여' end "성별"
from SAWON) S
group by S.성별;
--------------- 연습문제 : 연령대별 인원수를 구해보자.
select Y.연령대, count(*)
from
(select case when substr(minbun,7,1) in ('1','2')
then floor((extract(year from sysdate) - (to_number(substr(minbun,1,2)) + 1899))/10)
when substr(minbun,7,1) in ('3','4')
then floor((extract(year from sysdate) - (to_number(substr(minbun,1,2)) + 1999))/10)
end "연령대"
from SAWON) Y
group by Y.연령대
'Program... > Oracle' 카테고리의 다른 글
Oracle rollup, cube 함수 (0) | 2009.03.14 |
---|---|
Oracle Having 절 (0) | 2009.03.14 |
Oracle 단일행 함수와 그룹함수의 차이점 (0) | 2009.03.14 |
Oracle rank 함수 (0) | 2009.03.13 |
Oracle 변환형 함수 (0) | 2009.03.13 |