DB/Oracle
[Oracle] 책 3장 연습문제 풀이 기록
sky Jeong
2021. 8. 11. 11:47
2. student 테이블의 birthday 컬럼을 참조해서 아래와 같이 월별로 생일자 수를 출력하세요. [212 페이지]
[1차 시도] PIVOT
[2차 시도] DECODE
▶ PIVOT 사용법이 최선인지 모르겠으나 결과에 EA를 붙여 출력해야 한다면 DECODE를 사용한 코드가 더 효율적일 것으로 생각됨 ( 3번 문제도 마찬가지 )
4. emp 테이블을 사용해 아래의 화면과 같이 부서별 직급별로 급여 합계 결과를 출력하세요 [213 페이지]
▶ 사용 함수 힌트
(1) 문제에 힌트가 숨어있음. [부서별 직급별로] 결과 값에는 부서번호를 제외한 직업별 합계 표기와 부서별 합계, 부서와직업별 합계가 표기됨.
더보기
한 마디로 기준별 소계가 요약되어 있는데, 이를 그룹핑하고 효과적으로 세 가지 조건에 맞는결과를 얻을 수 있는 그룹 함수가 존재함.
(2) 데이터를 확인하면 특정 데이터는 직업이 없고(Null) 특정 부서에만 소속되어 있음. 결과 값은 해당 부서와 직업의 월급 합계를 나타내는 것으로, 한 마디로 직업이 Null인 데이터는 합산해서는 안 됨.
더보기
특정 컬럼의 값이 Null일 경우 var 1을 반환하며, 아닐 경우 var 2를 반환하는 함수가 존재함.
▶ 정답