일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 주피터노트북
- Python
- sql따라하기
- 데이터분석시각화
- 파이썬알고리즘
- 주피터노트북그래프
- python수업
- 판다스데이터분석
- matplotlib
- 파이썬크롤링
- 파이썬수업
- 파이썬차트
- 파이썬시각화
- SQL수업
- 맷플롯립
- sql연습하기
- 판다스그래프
- python데이터분석
- 파이썬데이터분석
- python알고리즘
- 주피터노트북맷플롯립
- SQLSCOTT
- 주피터노트북데이터분석
- 파이썬데이터분석주피터노트북
- SQL
- 팀플기록
- 주피터노트북판다스
- 수업기록
- sql연습
- 파이썬
- Today
- Total
IT_developers
SQL-hr 실습3 본문
hr 실습은 hr 생성 후 작성 가능.
문제를 다 푼 다음에 답 보기.
hr의 데이터가 많기 때문에 각각의 칼럼명을 알고 있어야 문제를 풀 수 있다.
<문제>
문제1) 매니저가 없는 사원들의 last_name, job_id 조회
문제2) ST_CLERK인 JOB_ID를 가진 사원이 없는 부서 id 조회(단, 부서번호가 null인 값은 제외)
문제3) commision_pct가 널이 아닌 사원들 중에서 commission = salart*commion_pct를 구하여, employee_id, first_name, job_id와 함께 출력
문제4) first_name이 Curtis인 사람의 first_name, last_name, phone_number,job_id 조회. (단,job_id의 결과는 소문자로 출력)
문제5) 부서번호가 60,70,80,90인 사원들의 employee_id, first_name, last_name, department_id, job_id 조회하기. (단, job_id가 IT _PROG 인 사원의 경우 프로그래머로 변경하여 출력)
문제6) job_id가 AD_PRES,PU_CLERK인 사원들의 employee_id, first_name, last_name, department_id, job_id 조회하기 (단, 사원명은 first_name과 last_name을 연결하여 출력)
문제7) 부서 80의 각 사원에 대해 적용 가능한 세율을 표시. 2000미만 - 0%, 4000미만 9%, 6000미만 20%, 8000미만 30%, 10,000미만 40%, 12,000미만 42%, 14,000미만 44% 나머지 45%
문제8) 회사 내의 최대 연봉 및 최소 연봉 차 출력
문제9) 매니저로 근무하는 사원들의 총 숫자 출력.
문제10) 부서별 직원수를 구하여, 부서번호의 오름차순으로 출력
<정답>
꼭 이것만 정답은 아닙니다. 다른 방법이 있을 수 있습니다.
문제1-답)
SELECT
last_name,
job_id,
manager_id
FROM
employees
WHERE
manager_id IS NULL;
문제2-답)
SELECT
department_id
FROM
employees
WHERE
job_id NOT IN ( 'ST_CLERK' )
AND department_id IS NOT NULL;
문제3-답)
SELECT
employee_id,
first_name,
job_id,
salary * commission_pct AS commission
FROM
employees
WHERE
commission_pct IS NOT NULL;
문제4-답)
SELECT
first_name,
last_name,
phone_number,
lower(job_id)
FROM
employees
WHERE
first_name = 'Curtis';
문제5-답)
SELECT
employee_id,
first_name,
last_name,
department_id,
replace(job_id, 'IT_PROG', '프로그래머')
FROM
employees
WHERE
department_id IN ( 60, 70, 80, 90 );
문제6-답)
SELECT
employee_id,
concat(first_name, concat(' ', last_name)),
department_id,
job_id
FROM
employees
WHERE
job_id IN ( 'AD_PRES', 'PU_CLERK' );
문제6-답) 기호사용
SELECT
employee_id,
first_name
|| ' '
|| last_name,
department_id,
job_id
FROM
employees
WHERE
job_id IN ( 'AD_PRES', 'PU_CLERK' );
문제7-답)
SELECT
last_name,
salary,
decode(trunc(salary / 2000), 0, 0.00, 1, 0.09,
2, 0.20, 3, 0.30, 4,
0.40, 5, 0.42, 6, 0.44,
0.45) AS tax_rate
FROM
employees
WHERE
department_id = 80;
문제8-답)
SELECT
MAX(salary) - MIN(salary)
FROM
employees;
문제9-답) 중복 출력
SELECT
COUNT(manager_id)
FROM
employees;
문제9-답) 중복 제외 출력
SELECT
COUNT(DISTINCT manager_id)
FROM
employees;
문제10-답)
SELECT
department_id,
COUNT(employee_id)
FROM
employees
GROUP BY
department_id
ORDER BY
department_id;
'SQL' 카테고리의 다른 글
SQL Developer - 데이터 분석 환경 설정 (0) | 2022.10.10 |
---|---|
SQL-hr 실습4 (0) | 2022.08.20 |
SQL - hr 실습 2 (0) | 2022.08.19 |
SQL - hr 실습 1 (0) | 2022.08.19 |
SQL - hr 만들기 (0) | 2022.08.19 |