Today I learned (0414)

윤진호·2022년 4월 14일
0

Today I Learned

목록 보기
16/16

오늘 한일

태블로 18일차

시각화 공모전 수상작 팁

  • 데이터 시각화 커뮤니티(vizable), 빅데이터 연합동아리(Boaz, 투빅스)
  • 주최측 니즈 파악(Why) > 주최측 목적 찾기 > 방향성 수립하기
  • 기획서 : Why(왜) > What(무엇) > How(어떻게) > If(결과)
  • 데이터 수집 : 공공데이터포털, 서울특별시 빅데이터캠퍼스/열린데이터 광장, SKT 빅데이터허브, 품질기반 표준데이터 검색플랫폼 등

SQL

예제 1. Department Top Three Salaries

  • 테이블 Employee(id, name, salary, department), Department(id, name)
  • 부서별로 상위 3명에 해당하는 고소득자를 찾아라.
  • 어제 풀었던 예제와 조인 부문은 똑같고 상위 3개까지 찾는 데 차이가 있음
(쿼리문)
select b.name as Department, a1.name as Employee, a1.salary as Salary
from Employee as a1
join Department as b
on b.id = a1.departmentId
where 3 >  (select count(distinct a2.salary) from Employee as a2
            where a2.salary > a1.salary #a1.salary보다 많은 급여 정보의 추출
            and a1.DepartmentId = a2.DepartmentId) 

예제 2. Trips and Users

  • 테이블 Trips (id, client_id, driver_id, city,_id, status, request_at)
  • 테이블 Users (users_id, banned, role)
  • "2013-10-01"과 "2013-10-03" 사이의 금지되지 않은 유저의 취소율을 계산하시오. 취소율은 소수점 둘째자리까지 계산하시오
  • 취소율 : 해당 날짜에 차단되지 않은 사용자의 총 요청 수 / 차단되지 않은 사용자의 취소된(클라이언트 또는 드라이버별) 요청 수
  • GS 리테일 코딩테스트에서 나왔던 문제와 비슷하다. 그 때는 리텐션 계산하는 문제였었다.
  • 쿼리문은 생각했던 대로 나왔는데... 취소율 구하는 게 어렵다. 취소된 요청을 제외해야하는 게 추가되었다.
(쿼리문)
SELECT A.request_at AS Day, 
ROUND(SUM(CASE WHEN A.Status LIKE 'cancelled_%' THEN 1 ELSE 0 END)/COUNT(*),2) AS Concellation_Rate
FROM Trips AS A
JOIN Users AS B
ON B.users_id = A.Client_id and B.Banned='No'
WHERE A.request_at BETWEEN "2013-10-01" AND "2013-10-03"
GROUP BY A.request_at

토니모리 코딩테스트 재시험

  • 이래도 되는 것인 지는 잘 모르겠지만 지난 주 코딩테스트와 동일한 유형으로 문제가 나왔다. 아깝게도 한개 못 풀었지만 3개는 제대로 맞추는 데에 성공했다. 헤드헌터 분 볼 면목이 조금 생겼다;;
  • 테이블 조인 문제의 경우 지난 번에는 외래 키를 제대로 확인하지 않고 조인을 해서 문제가 진행되지 않았었다. 이번에는 제대로 확인을 했고, 결제 취소 등을 약간 꼰 질문들도 잘 풀어서 2개 무사히 넘겼다.
  • 친구찾기 문제는 블로그 검색했는 데 UNION ALL로 사용해서 풀은 케이스가 있어서 그걸 적용했다. SQLD 딴 이후로 쓸 일이 없어서 까먹고 있었는 데 좋은 경험이 되었다.
  • 직원-직급 수정하는 것은 CASE문을 적용해서 일부 풀었는데 최종적으로는 맞추는 데에 실패했다. NULL값을 BOSS로 바꾸는 것은 NULLIF에서는 됬는데 CASE 문에서는 충돌이 나는 부분이 있었고, 또 상급자 유무를 반영하는 것도 어떻게 해야되는 지 모르겠다.
  • 하루 종일 우울했었는데 그래도 3개 맞춰서 위안이 된다..

국민취업지원제도 오리엔테이션 참여

  • 성동광진고용센터에서 1시간 정도 제도에 대해 설명을 받았다.
  • 6개월 동안 월 2번씩 이력서를 제출하는 등 구직 계획을 진행하면 월 50만원씩 지급받을 수 있다.
  • 단, 프리랜서 업무가 50만원을 초과해서 받을 수 없다. 당분간 프리랜서 업무를 조정해야할 것 같다.
  • 내일배움카드 관련해서 교육 수강 신청해볼 계획이다. 패스트캠퍼스 등 괜찮은 교육기관이 많아 보였다.

내일 할 일

태블로 : 시각화 케이스

SQL : PHP

profile
데이터 분석가

0개의 댓글