
본 캠프 10일 차!
[TODAY'S SQL 코드카타]
1) 첫 번째 문제는 '경기도에 위치한 식품창고 목록 출력하기'
Q. FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요.
👉조회 시 보여야 하는 데이터 : 창고의 ID, 이름, 주소, 냉동시설 여부
✔️테이블명 : FOOD_WAREHOUSE
✔️조건 : 경기도에 위치한 창고(WHERE ~ LIKE '경기%')
✔️조건2 : 시설 여부 NULL인 경우 'N'으로 출력(IF ~ IS NULL='N')
✔️조건3 : 창고 ID 기준 오름차순(ORDER BY ASC)
SELECT WAREHOUSE_ID,
WAREHOUSE_NAME,
ADDRESS,
IF(FREEZER_YN IS NULL,'N',FREEZER_YN) AS FREEZER_YN
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '경기%'
ORDER BY WAREHOUSE_ID
2) 두번째 문제는 '이름이 없는 동물의 아이디'
Q. 동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다..
👉조회 시 보여야 하는 데이터 : ANIMAL_ID
✔️테이블명 : ANIMAL_INS
✔️조건 : 이름이 없는 (WHERE NAME IS NULL)
✔️조건2: ID는 오름차순 정렬(ORDER BY ASC)
작성한 쿼리문은
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL
ORDER BY ANIMAL_ID;
세 번째 문제는 '나이 정보가 없는 회원 수 구하기'
Q. USER_INFO 테이블에서 나이 정보가 없는 회원이 몇 명인지 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 USERS로 지정해주세요.
👉조회 시 보여야 하는 데이터 : 회원 몇 명인지(COUNT(*))
✔️조건 : 나이 정보가 없는 (WHERE AGE IS NULL)
나의 최종 쿼리문은
SELECT COUNT(*) USER
FROM USER_INFO
WHERE AGE IS NULL
네 번째 문제는 '잡은 물고기의 평균 길이 구하기'
**Q. 잡은 물고기의 평균 길이를 출력하는 SQL문을 작성해주세요.
평균 길이를 나타내는 컬럼 명은 AVERAGE_LENGTH로 해주세요.
평균 길이는 소수점 3째자리에서 반올림하며, 10cm 이하의 물고기들은 10cm 로 취급하여 평균 길이를 구해주세요.**
👉조회 시 보여야 하는 데이터 : 물고기 평균 길이 (AVG(LENGTH))
✔️조건 : 평균 길이 소수점 3째자리에서 반올림 (ROUND ~,2)
✔️조건2 : 10CM 이하 물고기들은 10CM로 취급 -> 평균 길이 구하기
최종 쿼리문은
SELECT ROUND(AVG(IF(LENGTH IS NULL,10,LENGTH)),2) AS AVERAGE_LENGTH
FROM FISH_INFO;
다섯 번째 문제는 '조건에 부합하는 중고거래 댓글 조회하기'
Q. USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬해주세요.
👉조회 시 보여야 하는 데이터 : 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일
✔️테이블 : USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블 (INNER JOIN)
✔️조건 : 2022년 10월에 작성된 게시글 (WHERE ~ LIKE '2022-10%')
✔️조건2 : 댓글 작성일 기준 오름차순, 게시글 제목 기준 오름차순 (ORDER BY ~)
최종 쿼리문은
SELECT UGB.TITLE,
UGB.BOARD_ID,
UGR.REPLY_ID,
UGR.WRITER_ID,
UGR.CONTENTS,
DATE_FORMAT(UGR.CREATED_DATE, '%Y-%m-%d')
FROM USED_GOODS_REPLY UGR
INNER JOIN USED_GOODS_BOARD UGB ON UGR.BOARD_ID=UGB.BOARD_ID
WHERE UGB.CREATED_DATE LIKE '2022-10%'
ORDER BY UGR.CREATED_DATE, UGB.TITLE;
오늘 첫 팀 과제 발표 완료 후 KTP 회고 기록
✔️ 과제 : 특정 도메인 선택 후 EDA 진행
✍️ KTP 회고 :
첫 과제였던 만큼 여러 가지 어려움이 있었다. 도메인에 대한 지식과 이해가 부족하였고, 데이터 분석 능력 또한 미흡하였으며, 쿼리 사용 경험도 짧아 과제 준비 기간이 빠듯하게 느껴졌다. 그렇다 보니 우리 조는 의견을 많이 교환하였으나, 보다 효율적인 과제 수행을 위해 역할을 분담하였고, 그 결과 각자가 익숙한 역할에 집중하면서 어려운 분야에 대한 경험이 부족해졌다. 과제 방향성을 잡기 위해 논의하는 데 오랜 시간이 소요되었으며, 이 부분은 튜터님께 칭찬을 받았지만, 제시한 가설에 매몰되어 너무 좁게 사고한 점이 아쉬웠다.
그러나 팀 과제를 진행하면서 제가 보지 못했던 다양한 관점과 전략을 도출할 수 있었고, 발표 후 즉각적으로 받은 피드백을 통해 다음 과제에서는 이러한 부족한 점을 보완해야겠다고 다짐하였다. 또한 타 팀이 같은 데이터를 어떻게 분석하였는지 확인하면서 저의 한정된 시야가 넓어지는 경험을 하였다. 앞으로 다음 과제에서는 더 우수한 결과물을 낼 수 있기를 기대하며, 다음엔 튜터님을 적극 활용하는 것도 좋겠다는 생각이 들었다.
이번주도 무사히 잘 지나갔다!
주말동안 공부 내용 복습하고
다음주부터 나갈 파이썬 미리 예습해봐야겠다.