요즘 과제를 열심히 하고 있다.
1개월 단기 인턴을 신청해서 1차 합격이 되어 2차 합격으로 가기 위해 과제를 하고 있다.
코드만 간단하게 소개하겠다.
SELECT COUNT(DISTINCT userid) cnt
FROM intern2
WHERE createdat >= '2023-07-03'
AND createdat >= '2023-01-01';
이건 기간 내에 있던 유저가 1번 이상 한 인원이기에 DISTINCT로 중복 제거를 했다.
-- SELECT
-- SUM(CASE WHEN status='최종합격' THEN 1 ELSE 0 END) final_pass_cnt
-- ,ROUND(
-- SUM(CASE WHEN status='최종합격' AND type='resume' THEN 1 ELSE 0 END)
-- /COUNT(DISTINCT userid)
-- ,2) final_resume_mean
-- ,ROUND(
-- SUM(CASE WHEN status='최종합격' AND type='interview' THEN 1 ELSE 0 END)
-- /COUNT(DISTINCT userid)
-- ,2) final_interview_mean
-- FROM intern2;
SELECT
COUNT(userid)
,ROUND(
SUM(CASE WHEN type='resume' THEN 1 ELSE 0 END)
/COUNT(DISTINCT userid)
,2) final_resume_mean
,ROUND(
SUM(CASE WHEN type='interview' THEN 1 ELSE 0 END)
/COUNT(DISTINCT userid)
,2) final_interview_mean
FROM intern2
WHERE status='최종합격';
요거는 두 가지의 방법으로 했었는데 결과적으로는 두번째 코드가 옳은 코드이다.
이유는 다음과 같다. 첫번째 코드처럼 할 경우 COUNT(DISTINCT userid)가 최종합격의 비율이 아니라 전체 인원을 나누는 거라 옳지 않다.
오늘은 여기까지.
내일 SQL로 완료하고 Python으로 추가적으로 하고 싶은 욕심이 있다. 화이팅하자.