사전캠프 12일차
어느덧 본캠프 시작 4일 전이다. 오늘은 8번째 아티클 스터디와 SQL 달리기반 5번 문제 풀이를 진행했다.
아티클 스터디
이번 아티클은 업무에서 비개발용 언어를 사용하는 데이터 분석가의 코딩테스트에 관한 이야기다.
https://yozm.wishket.com/magazine/detail/1708/
데이터 분석가에게 코딩테스트가 필요할까? | 요즘IT
최근 개발자 교육 붐이 불면서, 이른바 ‘코딩’이라고 뭉뚱그려 표현하는 개발 기술들을 배우는 학원이 많아졌습니다. 이러한 인재들이 자신들이 배운 걸 확인하기 위해 한 번쯤 꼭 거치는 단
yozm.wishket.com
- 내가 정리한 내용
[주제]
데이터 분석가의 코딩테스트
[아티클 요약]
- 코딩테스트란?
- 특정 프로그래밍 언어를 사용하여 주어진 문제를 잘 해결할 수 있는지의 기술적인 부분을 확인하는 시험
- 기업 내 데이터 분석가의 업무
- 문제 정의
- 데이터 분석에 대한 이해
- 타 직군과의 협업
- 빠른 학습
>> 데이터를 활용해 정해진 답이 없는 문제를 해결해야 함
- 코딩테스트와 데이터 분석
- 머신러닝 모델의 평가 지표 계산
- SQL을 활용한 메트릭 계산
- 텍스트 등의 데이터 파싱 및 전처리
- 추가로 있으면 좋을 역량
- 통계학
- 심리학 ex) 포그 행동 모델
SQL 달리기반 5번 문제 풀이
Employees 테이블:
요구사항:
- 각 직원의 이름, 부서, 월급, 그리고 그 직원이 속한 부서에서 가장 높은 월급을 받고 있는 직원의 이름과 월급을 조회하는 SQL 쿼리를 작성해주세요.
- 부서별로 평균 월급이 가장 높은 부서의 이름과 해당 부서의 평균 월급을 조회하는 SQL 쿼리를 작성해주세요.
문제 접근
1번.
- 추가로 칼럼을 생성하는거니까 self join, top_earner와 top_salary를 만들기 위해 select절에는 name과 salary만 한 번씩 더 붙이기
- 그 직원이 속한 부서에서 가장 높은 월급 받는 직원 >> 이거 풀 때 where절에 서브쿼리 필요
- e3이라는 세번째 테이블을 하나 더 지정해서, max인 salary를 추출
>> 근데 이게 e2의 salary와 동일하다면 그 사람이 최대 월급 >> where절에
2번.
- department로 group by
- 평균 월급은 avg(salary) as avg_salary
- 가장 높은 부서 1개만 조회, order by를 내림차순으로, limit 1
최종 코드
1번.
SELECT e1.Name,
e1.Department,
e1.Salary,
e2.name AS Top_Earner,
e2.salary AS Top_Salary
FROM Employees e1
LEFT JOIN Employees e2 ON e1.department = e2.department
WHERE e2.salary = (
SELECT MAX(salary)
FROM Employees e3
WHERE e3.department = e1.department
);
2번.
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
ORDER BY avg_salary DESC
LIMIT 1
'내배캠 데이터분석가 과정 > 사전캠프 TIL' 카테고리의 다른 글
[사전캠프 11일차] 아티클 스터디 + SQL 달리기반 4번 문제 풀이 (0) | 2025.02.07 |
---|---|
[사전캠프 9일차] 아티클 스터디 (0) | 2025.02.05 |
[사전캠프 8일차] 아티클 스터디 (0) | 2025.02.04 |
[사전캠프 7일차] 아티클 스터디 + SQL 달리기반 3번 문제 (0) | 2025.02.03 |
[사전캠프 5일차] 아티클 스터디 + SQL 달리기반 2번 문제 (0) | 2025.01.24 |