SQL_Project_Job-Postings은(는) 무엇을 하나요?
데이터 직종 채용 공고의 SQL 분석을 통해 직업 수요, 연봉, 필수 기술, 원격 근무 기회 및 학습에 최적의 기술을 탐색합니다.
개요
이 프로젝트는 데이터 관련 직종(Data Analyst, Data Scientist, Data Engineer 등)의 채용 공고 데이터를 SQL로 분석합니다. 주요 목표는 다음과 같습니다:
- 직무별 채용 수요 파악
- 연봉 분포와 상위 연봉을 받는 기술 식별
- 원격 근무 가능한 포지션 분석
- 학습할 가치가 있는 최적의 기술 도출
데이터베이스 스키마
분석은 다음 테이블을 포함하는 정규화된 데이터베이스를 기반으로 합니다:
jobs: 채용 공고 정보 (job_id, title, salary, remote_ratio 등)skills: 기술 마스터 목록 (skill_id, skill_name)job_skills: 공고-기술 연결 테이블 (job_id, skill_id)
주요 분석 쿼리 예시
1. 직무별 채용 공고 수
SELECT
title,
COUNT(*) AS postings_count
FROM jobs
GROUP BY title
ORDER BY postings_count DESC;
2. 상위 연봉 직무와 요구 기술
SELECT
j.title,
ROUND(AVG(j.salary), 2) AS avg_salary,
s.skill_name
FROM jobs j
JOIN job_skills js ON j.id = js.job_id
JOIN skills s ON js.skill_id = s.id
GROUP BY j.title, s.skill_name
ORDER BY avg_salary DESC
LIMIT 10;
3. 원격 근무 가능 공고 비율
SELECT
CASE
WHEN remote_ratio = 100 THEN '완전 원격'
WHEN remote_ratio > 0 THEN '부분 원격'
ELSE '오피스 근무'
END AS work_type,
COUNT(*) AS count,
ROUND(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER(), 2) AS percentage
FROM jobs
GROUP BY work_type
ORDER BY count DESC;
4. 최적의 학습 기술 (수요 및 연봉 기준)
SELECT
s.skill_name,
COUNT(DISTINCT j.id) AS demand_count,
ROUND(AVG(j.salary), 2) AS avg_salary
FROM skills s
JOIN job_skills js ON s.id = js.skill_id
JOIN jobs j ON js.job_id = j.id
GROUP BY s.skill_name
HAVING COUNT(DISTINCT j.id) > 100
ORDER BY avg_salary DESC;
사용 방법
- 데이터베이스에 연결 (PostgreSQL 권장)
- 스키마에 맞게 데이터 로드
- 위 쿼리 또는 사용자 정의 쿼리 실행
- 결과를 기반으로 인사이트 도출
라이선스
MIT 라이선스