강의자료 목록으로

hccp 데이터 조회하기

hccp 데이터 조회하기

HCCP 근로자 SQL 실습 변수표

HCCP 근로자 데이터 SQL 실습 과제

데이터

  • 원자료: HCCP_2ndWave_Work_4th.csv
  • 조사명: 인적자본기업패널 II 4차 근로자 조사
  • 조사 기준: 2022년 1월 1일 ~ 2022년 12월 31일
  • 분석 단위: 근로자
  • 실습용 CSV 생성:

python scripts/build_hccp_worker_csv.py

생성 결과:

  • output/hccp/hccp_worker_2023_selected.csv
  • SQL 실습에서는 이 CSV를 DB 도구에 import해서 hccp_workers 테이블로 사용합니다.

주의사항

  • company_id는 기업 식별자, worker_id는 기업 내 근로자 식별자입니다.
  • 특수코드 -6, -7, -8, -9, 공백, .은 SQL DB 생성 시 NULL로 처리합니다.
  • 만족도와 인식 문항은 대부분 1~5점 척도입니다. 값이 클수록 긍정적이지만, turnover_intention, fatigue, job_tension은 값이 클수록 이직의향/피로/긴장이 높다는 뜻입니다.
  • 소득 변수는 만원 단위입니다. annual_income_10k_krw는 연간 총 근로소득, monthly_income_10k_krw는 월평균 근로소득입니다.

과제 1. 데이터 구조 확인

  1. 전체 근로자 수를 구하시오.
  2. 산업분류별 근로자 수를 구하시오.
  3. 성별 근로자 수를 구하시오.
  4. 최종학력별 근로자 수를 구하시오.

예시:

SELECT industry_group, COUNT(*) AS worker_count FROM hccp_workers GROUP BY industry_group ORDER BY worker_count DESC;

과제 2. 교육훈련 참여 분석

  1. 직무 관련 교육훈련 참여율을 구하시오.
  2. 산업분류별 직무 관련 교육훈련 참여율을 비교하시오.
  3. 회사 규모별 OJT 참여율과 Off-JT 참여율을 비교하시오.
  4. 직무 관련 교육훈련 참여 여부에 따라 전반적 직무만족도 평균이 다른지 비교하시오.

예시:

SELECT AVG(CASE WHEN training_job_related = 1 THEN 1.0 ELSE 0.0 END) * 100 AS job_training_rate FROM hccp_workers WHERE training_job_related IS NOT NULL;

과제 3. 교육훈련 인식과 직무만족

  1. 교육훈련이 충분하다고 느끼는 정도의 평균을 구하시오.
  2. 교육훈련 기회가 공평하다고 느끼는 정도의 평균을 구하시오.
  3. 교육훈련의 직무연관성 평균과 현장적용성 평균을 비교하시오.
  4. 교육훈련 충분성 점수가 높은 집단과 낮은 집단의 직무만족도 평균을 비교하시오.

예시:

SELECT CASE WHEN training_sufficient >= 4 THEN '높음' WHEN training_sufficient <= 2 THEN '낮음' ELSE '보통' END AS training_sufficient_group, COUNT(*) AS worker_count, ROUND(AVG(overall_job_satisfaction), 2) AS avg_job_satisfaction FROM hccp_workers WHERE training_sufficient IS NOT NULL AND overall_job_satisfaction IS NOT NULL GROUP BY training_sufficient_group;

과제 4. 조직문화와 이직의향

  1. 상사에게 자유롭게 의견을 낼 수 있는 정도의 평균을 구하시오.
  2. 평가와 보상이 공정하다고 느끼는 정도의 평균을 구하시오.
  3. 이직의향 평균이 높은 산업을 찾으시오.
  4. 조직충성도가 높은 집단과 낮은 집단의 이직의향 평균을 비교하시오.

예시:

SELECT CASE WHEN organizational_loyalty >= 4 THEN '충성도 높음' WHEN organizational_loyalty <= 2 THEN '충성도 낮음' ELSE '보통' END AS loyalty_group, COUNT(*) AS worker_count, ROUND(AVG(turnover_intention), 2) AS avg_turnover_intention FROM hccp_workers WHERE organizational_loyalty IS NOT NULL AND turnover_intention IS NOT NULL GROUP BY loyalty_group ORDER BY avg_turnover_intention DESC;

과제 5. 근로시간과 소득

  1. 평균 정규 근로시간과 평균 초과 근로시간을 구하시오.
  2. 정규직 여부에 따라 평균 초과 근로시간을 비교하시오.
  3. 산업분류별 연간 총 근로소득 평균을 구하시오.
  4. 성별 연간 총 근로소득 평균을 구하시오.

예시:

SELECT gender, COUNT(*) AS worker_count, ROUND(AVG(annual_income_10k_krw), 1) AS avg_annual_income_10k_krw FROM hccp_workers WHERE annual_income_10k_krw IS NOT NULL GROUP BY gender ORDER BY avg_annual_income_10k_krw DESC;

제출물

  1. 각 과제별 SQL 쿼리
  2. 쿼리 실행 결과 표
  3. 결과 해석 3~5문장
  4. 분석 시 제외한 결측값 또는 특수값 설명