본문 바로가기

TIL

(97)
[231226] SQLD: 기본개념 및 데이터 모델링 & SQL: 코드카타 75~76 * 수강 강의명: SQLD 자격증 대비반 - 1~2주차 [요약] 1. SQLD - 국가 공인 자격증(필기)으로, SQL + Developer을 합친 말 - [1과목] 데이터 모델링의 이해(10문항) [2과목] SQL 기본 및 활용 (40문항) - 60/100점(90분) └ 과목별로 정답 60% 이하 시 불합격 * 상세 링크: https://www.dataq.or.kr/www/sub/a_04.do 2. 기본 개념 ① 데이터(Data): 저장이나 처리에 효율적인 형태로 변환된 정보(information) ② 데이터베이스(Database): 데이터 모음집 ③ DBMS (Database Management System): 데이터베이스를 조작하는 프로그램 └ DBMS 종류는? SQLite / MySQL / ORA..
[231222] SQL: 코드카타 72~74 1. WITH RECURSIVE절을 활용한 문제 입양 시각 구하기(2) https://school.programmers.co.kr/learn/courses/30/lessons/59413 1) 어떤 문제가 있었나 시간대별 입양수를 구하는 문제에서, 입양이 발생하지 않은 시간대를 포함한 전체 시간대를 추출하는 방법을 모름 2) 내가 시도해본 건 무엇인가 IF절을 활용해 값이 NULL일 경우 0이 기입되도록 쿼리를 작성하였으나, 애초에 항목이 없어서 NULL값도 없어 조건절 적용 불가 3) 어떻게 해결했나 구글링을 통해 WITH RECURSIVE 재귀 함수로 없는 칼럼을 새로 생성하는 방법을 공부하고, 이후 문법은 스스로 짜봄 with recursive A as (select 0 as h union all s..
[231221] SQL: 코드카타 71 1) 어떤 문제가 있었나 ① 오프라인/온라인 판매 데이터 통합하기 UNION ALL을 활용해 보았으나 정답 오류로 체크됨 SELECT * FROM (SELECT SUBSTRING(sales_date,1,10) sales_date, product_id, user_id, sales_amount FROM ONLINE_SALE WHERE SUBSTRING(sales_date,1,7) = '2022-03' UNION ALL SELECT SUBSTRING(sales_date,1,10) sales_date, product_id, null user_id, sales_amount FROM ONLINE_SALE WHERE SUBSTRING(sales_date,1,7) = '2022-03') ORDER BY 1, 2, 3 ..
[231220] SQL: 코드카타 66~70 1) 어떤 문제가 있었나 ① 조회수가 가장 많은 중고거래 게시판 첨부파일 조회하기 with 절을 활용해 게시판ID 별 MAX 값을 뽑았으나 오답 처리 WITH TABLE1 AS (SELECT BOARD_ID, MAX(VIEWS) FROM USED_GOODS_BOARD) SELECT CONCAT('/home/grep/src/', BOARD_ID,'/', FILE_ID, FILE_NAME, FILE_EXT) FILE_PATH FROM USED_GOODS_FILE WHERE BOARD_ID = (SELECT BOARD_ID FROM TABLE1) ORDER BY FILE_ID DESC ② 주문량이 많은 아이스크림들 조회하기 정답을 맞추긴 하였으나 쿼리문이 다소 긴 것 같아 다른 답을 찾아봄 WITH FH AS..
[231219] SQL: 코드카타 60~65 1) 어떤 문제가 있었나 SQL 코드카타 중 ① 자동차 대여 일수를 구하는 문제에서 두 개의 날짜값의 일수 차이를 구할 때 (종료일 - 시작일)로 계산하니 오류 발생함 ② 장바구니에 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니 id를 조회해야 했는데, 동일한 품목을 중복 구매한 값을 제거한 장바구니ID 추출에 어려움을 겪음 2) 내가 시도해본 건 무엇인가 ① 날짜 차이를 추출할 수 있는 함수를 구글링하여 DATEDIFF 함수를 적용해봄 ② 우유와 요거트를 1과 100 숫자값으로 치환한 후 합계값이 101~199 사이인 장바구니 ID 추출하여 정답 완료 하지만, 데이터 정보량이 많을 경우 오류 발생할 것으로 판단됨 3) 어떻게 해결했나 ① DATEDIFF 를 활용한 후, 자동차 대여 시..
[231218] SQL: 코드카타 55~59 1) 어떤 문제가 있었나 SQL 코드카타 59번 문제에서 특정 날짜에 자동차 대여 상태를 표시한 후 이를 자동차ID별로 출력해야 했는데, 특정일자 이전의 대여 기록을 거르고 대여중인 상태가 우선순위가 되도록 출력할 방법을 잡지 못함 2) 내가 시도해본 건 무엇인가 WHERE 절과 GROUP BY에 출력 조건을 제한해보려 했지만, 오답으로 체크됨 3) 어떻게 해결했나 다른 사람 쿼리문을 통해 대여시작/종료 일자 내 특정일자 포함되면 1(대여중)로, 반대는 0(대여가능)으로 치환 > MAX값을 통해 대여중 상태가 우선순위를 갖도록 하는 방법을 알게 됨 --- 내가 쓴 쿼리문 --- SELECT car_id, IF(SUM(RENTAL)=0, '대여 가능', '대여중') AVAILABILITY FROM ( SE..
[231215] Phython: 실습 - 프로덕트 개선 * 수강 강의명: 데이터 분석 종합반 - 5주차 [요약] * 5주차 앞단 내용은 https://datananalysis.tistory.com/21 참고 1. 프로덕트 개선은 정말 도움이 되었을까 - 가설 : - 8월 2주차부터 프로덕트가 개편되었으므로, 3주차 이후 강의 완주율이 현저히 떨어졌을 것이다. - 이후 액션: 3주차 이후 완주율이 떨어졌다면 이전의 커리큘럼으로 돌아가고, 아니라면 다른 요인을 찾는다. #라이브러리 불러오기 import pandas as pd import seaborn as sns import matplotlib.pyplot as plt plt.rc('font', family='NanumBarunGothic') sparta_data = pd.read_table('/content/..
[231214] Phython: 실습 - 타깃, 동기 부여 서비스 분석 * 수강 강의명: 데이터 분석 종합반 - 5주차 [요약] 1. 실습 미션 및 가설 - 미션 : 8월 중순부터 강의 완주율이 크게 떨어졌다. 그 이유는? - 수강 여정에 따른 가설 설정 ① 강의를 들을 수 있는 시간적 여유가 생긴다. > 타깃별 완주율 > 주요 컨텐츠 및 마케팅 타깃이 맞는지 검토 ② 강의를 들어야겠다고 마음을 먹는다. > 동기부여 서비스 여부에 따른 완주율 > 서비스 강화 필요성 검토 ③ 강의를 듣기 위해 콘텐츠에 접근한다. > 시스템 오류 여부 확인 (본 실습에서는 이슈 없었다고 가정) ④ 콘텐츠를 ② 에서 목표한 부분까지 듣는다. > 강의 개편 전후에 따른 완주율 > 개편 강의 유지 여부 검토 2. 우리는 적절한 타겟에게 판매를 하고 있을까? - 가설 : 다른 연령대에 비해 바쁜 20..