전체 글 170

조건별로 분류하여 주문상태 출력하기

[문제] FOOD_ORDER 테이블에서 2022년 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회하는 SQL문을 작성해주세요. 출고여부는 2022년 5월 1일까지 출고완료로 이 후 날짜는 출고 대기로 미정이면 출고미정으로 출력해주시고, 결과는 주문 ID를 기준으로 오름차순 정렬해주세요. [단계별 풀이] 1. CASE WHEN 문으로 출고일자가 5월 1일보다 같거나 작으면 출고완료, 이후는 출고대기, NULL이면 출고미정2. 주문ID, 제품ID, 출고일자, 출고여부를 선택3. 주문ID 기준으로 오름차순 정렬[정답]SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, '%Y-%m-%d'), CASE WHEN OUT..

조건에 맞는 도서와 저자 리스트 출력하기

[문제] '경제' 카테고리에 속하는 도서들의 도서 ID(BOOK_ID), 저자명(AUTHOR_NAME), 출판일(PUBLISHED_DATE) 리스트를 출력하는 SQL문을 작성해주세요.결과는 출판일을 기준으로 오름차순 정렬해주세요. [단계별 풀이] 1. BOOK 테이블과 AUTHOR 테이블을 AUTHOR_ID 기준으로 JOIN2. CATEGORY가 경제인 행들만 필터링3. 도서 ID, 저자명, 출판일 출력4. 출판일 기준으로 오름차순 정렬5. 날짜 포맷 맞춰야해요[정답]SELECT B.BOOK_ID, A.AUTHOR_NAME, DATE_FORMAT(B.PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATEFROM BOOK BJOIN AUTHOR AON B.A..

보호소에서 중성화한 동물

[문제] 보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 아이디 순으로 조회하는 SQL 문을 작성해주세요. [단계별 풀이] 1. ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 ANIMAL_ID 기준으로 JOIN2. INS의 SEX_UPON_INTAKE가 'Intact' 이면서 OUTS의 SEX_UPON_OUTCOME이 'Spayed' 또는 'Neutered' 인 행을 필터링3. 아이디와 생물 종, 이름을 선택4. ID 순으로 오름차순 정렬 참고: REGEXP보다 LIKE 연산자가 단순문자열 패턴 매칭이기 때문에 좀 더 빠릅니다.[정답]SELECT I.ANIMAL_ID,..

오랜 기간 보호한 동물2

[문제] 입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다. [단계별 풀이] 1. ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 ANIMAL_ ID 기준으로 JOIN2. 아이디와 이름을 선택3. INS의 DATETIME과 OUTS의 DATETIME의 차이로 내림차순 정렬4. LIMIT 으로 2행 제[정답]SELECT I.ANIMAL_ID, I.NAMEFROM ANIMAL_INS IJOIN ANIMAL_OUTS OON I.ANIMAL_ID = O.ANIMAL_IDORDER BY O.DATETIME-I.DATETIME DESCLIMIT 2

있었는데요 없었습니다

[문제] 관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다. [단계별 풀이] 1. ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 ANIMAL_ID 기준으로 JOIN2. INS의 DATETIME 보다 OUTS의 DATETIME 이 더 작은 행을 필터링3. 동물의 아이디와 이름을 선택4. INS의 DATETIME을 오름차순 정렬[정답]SELECT I.ANIMAL_ID, I.NAMEFROM ANIMAL_INS IJOIN ANIMAL_OUTS OON I.ANIMAL_ID = O.ANIMAL_IDWHERE I.DATETIME > O.DAT..

상품 별 오프라인 매출 구하기

[문제] PRODUCT 테이블과 OFFLINE_SALE 테이블에서 상품코드 별 매출액(판매가 * 판매량) 합계를 출력하는 SQL문을 작성해주세요. 결과는 매출액을 기준으로 내림차순 정렬해주시고 매출액이 같다면 상품코드를 기준으로 오름차순 정렬해주세요. [단계별 풀이] 1. PRODUCT 테이블과 OFFLINE_SALE 테이블을 PRODUCT_ ID 기준으로 JOIN2. PRODUCT_CODE를 GROUP BY3. PRICE와 SALES_AMOUNT를 곱한 후 해당 컬럼을 SUM 한 뒤 SALES로 별칭4. SALES를 내림차순 정렬, 상품코드를 오름차순 정렬[정답]SELECT P.PRODUCT_CODE, SUM(P.PRICE * S.SALES_AMOUNT) AS SALESFROM PRODUCT..

카테고리 별 도서 판매량 집계하기

[문제] 2022년 1월의 카테고리 별 도서 판매량을 합산하고, 카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력하는 SQL문을 작성해주세요.결과는 카테고리명을 기준으로 오름차순 정렬해주세요. [단계별 풀이] 1. BOOK 테이블과 BOOK_SALES 테이블을 BOOK_ID 기준으로 JOIN2. SALES_DATE가 22년 1월인 행을 필터링3. CATEGORY를 GROUP BY하고 SALES를 SUM 한뒤 TOTAL_SALES로 지정4. CATEGORY 기준으로 오름차순 정렬 [정답]SELECT B.CATEGORY, SUM(S.SALES) AS TOTAL_SALESFROM BOOK BJOIN BOOK_SALES SON B.BOOK_ID = S.BOOK_IDWHERE..

오랜 기간 보호한 동물

[문제] 아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다. [단계별 풀이] 1. ANIMAL_INS (I)테이블과  ANIMAL_OUTS (O)테이블을 ANIMAL_ID을 기준으로 LEFT JOIN2. OUTS 테이블의 ANIMAL_ID가 NULL 행만 필터링3. INS 테이블의 이름,  보호 시작일을 선택4. INS 테이블의 보호시작일로 오름차순 정렬5. LIMIT 으로 3행 제한[정답]SELECT I.NAME, I.DATETIMEFROM ANIMAL_INS ILEFT JOIN ANIMAL_OUTS OON I.ANIMAL_ID = O.ANIMAL_IDWHERE O.A..

자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기

[문제] CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력하는 SQL문을 작성해주세요. 이때 자동차 수에 대한 컬럼명은 CARS로 지정하고, 결과는 자동차 종류를 기준으로 오름차순 정렬해주세요. [단계별 풀이] 1. OPTIONS에 통풍시트가 있거나 열선시트, 가죽시트가 있는 행만 필터링 (REGEXP 활용)2. 자동차 종류별로 GROUP BY3. CAR_ID를 COUNT 한 후 컬럼명을 CARS로 지정4. CAR_TYPE으로 오름차순 정렬[정답]SELECT CAR_TYPE, COUNT(CAR_ID) AS CARSFROM CAR_RENTAL_COMPANY_CAR WHERE OPT..

[241210] TIL

SQL 코드카타 29번까지 블로그에 정리하였다. 빠르게 76번까지 끝내고 파이썬 코드카타 문제들도 정리해보자. 파이썬 코드카타 문제들은 어떻게 해결하면 좋을지 아이디어를 떠올리고 해당 아이디어를 의사코드나 일반 언어로 적어보자. 그 뒤에 코드를 작성하고 시간복잡도도 분석해보는 방식으로 정리를 하자. 데이터프레임 groupby와 pivot_table, crosstab 부분을 마무리했다. 내일은 날짜, 시간 타입에 대해서 배울 예정이다. 복습과 실습이 많이 진행되어야할 것 같다. 한두번 가지고는 잘 기억에 남지 않을 것 같다. 자료구조, 알고리즘을 책과 강의를 통해 병행하고 있다. 이번 과정이 끝날 때쯤 기본적인 자료구조와 알고리즘에 대해서 완전히 숙지하고 프로그래머스 lv2 까지 풀 수 있도록 꾸준히 해보자.

TIL 2024.12.10