---- 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
Posted by Duritz

공지사항

Yesterday
Today
Total
02-15 05:06

달력

 « |  » 2025.2
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28