일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 앞산카페
- 수성구맛집
- 반복문
- 조건문
- 범어동맛집
- 대구카페
- 안지랑카페
- programmers
- BFS
- C#
- 들안길삼겹살
- 대명동맛집
- 백준
- 프로그래머스
- 수성구데이트
- 브루트 포스
- SQL
- 대구고깃집
- 오라클
- 서울맛집
- oracle
- 압구정데이트
- 큐
- 수성못맛집
- 대구삼겹살
- 대구맛집
- 수성못삼겹살
- 별찍기
- 정렬
- 대구데이트
- Today
- Total
모든 일상
3일차 예제문제 본문
EX1. 모든 사원의 급여 최고액, 최저액, 총액 및 평균액을 표시합니다.
열 레이블을 각각 Maximun, Minimum, Sum 및 Average로 지정하고 결과를 정수로 반올림하는 질의를 작성하시오.
select max(salary) as Maximum, min(salary) as Minimum, sum(salary) as Sum, round(avg(salary)) as Average
from emp;
EX2. 각 직무에 대한 급여 최저액, 최고액, 총액 및 평균액을 표시하도록 한다. 평균은 소숫점 둘째자리까지 표현하시오.
select job_id, max(salary) as Maximum, min(salary) as Minimum, sum(salary) as Sum, round(avg(salary),2) as Average
from emp
group by job_id
order by 1;
EX3. 직무가 동일한 사원의 수를 표시하는 질의를 작성하시오.
select job_id ,count(job_id)
from emp
group by job_id;
EX4. 관리자 목록 없이 관리자 수만 표시하고 열 레이블을 Number of Managers로 지정합니다.
select count(distinct manager_id) as "Nnumber of Managers"
from emp
EX5. 최고 급여와 최저 급여의 차액을 표시하는 질의를 작성하고 열 레이블을 DIFFERENCE로 지정하시오.
select max(salary), min(salary), max(salary)-min(salary) as DIFFERENCE
from emp;
EX6. 관리자 번호 및 해당 관리자에 속한 사원의 최저 급여, 인원수를 표시합니다.
관리자를 알 수 없는 사원 및 최저 급여가 $5000 미만인 그룹 제외시키고 급여를 기준으로 출력 결과를 내림차순으로 정렬하시오.
select manager_id, min(salary), count(*)
from emp
where manager_id is not null
group by manager_id
having min(salary) >= 5000
order by 2 desc;
EX7. 부서별 직무별 인원수 및 평균급여를 표시하는 질의를 작성하시오.
단, 평균 급여를 소수점 둘째 자리에서 반올림하고,
부서번호 순으로 정렬하고 부서가 같으면 평균급여가 높은 직무순으로 정렬하시오.
select department_id, job_id, count(*) as headcount, round(avg(salary),1) as avg_salary
from emp
group by department_id, job_id
order by 1, 4 desc;
EX8. 총 사원의 수 및 2002,2003, 2004,2005년에 입사한 사원 수를 표시하는 질의를 작성하고 적합한 열 머리글을 지정합니다.
출력 예 )
TOTAL 2002 2003 2004 2005
107 7 6 10 29
sol 1)
select count(*) as TOTAL,
sum(decode(to_char(hire_date, 'yyyy'), 2003, 1, 0)) as "2003",
sum(decode(to_char(hire_date, 'yyyy'), 2004, 1, 0)) as "2004",
sum(decode(to_char(hire_date, 'yyyy'), 2005, 1, 0)) as "2005",
sum(decode(to_char(hire_date, 'yyyy'), 2006, 1, 0)) as "2006"
from emp ;
sol 2)
SELECT COUNT(*) AS "TOTAL",
COUNT(CASE WHEN TO_CHAR(HIRE_DATE,'YYYY')='2002' THEN 1 END) AS "2002"
,COUNT(CASE WHEN TO_CHAR(HIRE_DATE,'YYYY')='2003' THEN 1 END) AS "2003"
,COUNT(CASE WHEN TO_CHAR(HIRE_DATE,'YYYY')='2004' THEN 1 END) AS "2004"
,COUNT(CASE WHEN TO_CHAR(HIRE_DATE,'YYYY')='2005' THEN 1 END) AS "2005"
FROM EMP