분류 전체보기 299

[프로그래머스] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

📢 본 포스팅에 활용되는 기본 문제 및 자료 출처는 프로그래머스 코딩테스트 연습, https://school.programmers.co.kr/learn/challenges?page=1&languages=mysql%2Coracle임을 밝힙니다. ■ 문제 문제 설명 다음은 어느 자동차 대여 회사의 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블입니다. CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블은 아래와 같은 구조로 되어있으며, HISTORY_ID, CAR_ID, START_DATE, END_DATE 는 각각 자동차 대여 기록 ID, 자동차 ID, 대여 시작일, 대여 종료일을 나타냅니다. Column name Type Nullable ..

[프로그래머스] 자동차 종류별 특정 옵션이 포함된 자동차 수 구하기

📢 본 포스팅에 활용되는 기본 문제 및 자료 출처는 프로그래머스 코딩테스트 연습, https://school.programmers.co.kr/learn/challenges?page=1&languages=mysql%2Coracle임을 밝힙니다. ■ 문제 문제 설명 다음은 어느 자동차 대여 회사에서 대여중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블입니다. CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, CAR_ID, CAR_TYPE, DAILY_FEE, OPTI ONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냅니다. Column name Type Nullable CAR_ID INTEGER FALSE..

[프로그래머스] 없어진 기록 찾기(2차풀이) / 문제 특이점 발견

📢 본 포스팅은 Growth/Practice 게시글 (https://sy038680.tistory.com/132) 문제에 대한 2차 풀이입니다. 기존 풀이에서는 JOIN을 사용해서 ANIMAL_INS 테이블의 INTAKE_CONDITION이 NULL값인 것을 추출했는데 2차 풀이에서는 JOIN을 사용하지 않고 WHERE절에 NOT IN을 사용해서 INS테이블에 없는 동물들 데이터만 OUTS 테이블에서 출력해보았다. SELECT ANIMAL_ID, NAME FROM ANIMAL_OUTS WHERE (ANIMAL_ID, NAME) NOT IN (SELECT ANIMAL_ID, NAME FROM ANIMAL_INS) ORDER BY 1 정답 인정은 되었는데... 기존에 풀었던 쿼리와 결과 데이터수가 다르다 🤔..

[프로그래머스] NULL 처리하기

📢 본 포스팅에 활용되는 기본 문제 및 자료 출처는 프로그래머스 코딩테스트 연습, https://school.programmers.co.kr/learn/challenges?page=1&languages=mysql%2Coracle임을 밝힙니다. ■ 문제 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N)..

[프로그래머스] 오프라인/온라인 판매 데이터 통합하기 (2차 풀이)

📢 본 포스팅은 Growth/Practice 게시글 (https://sy038680.tistory.com/232) 문제에 대한 2차 풀이입니다. 기존에는 UNION을 활용하긴 했는데 WITH절을 사용해서 임시테이블 T1을 생성해서 WHERE조건(3월 판매), 정렬조건만 나중으로 빼주었다. 재풀이에서는 아예 3월 조건까지 온/오프라인 테이블에 각각 적용해주고 난 뒤에 UNION을 적용했다. SELECT DATE_FORMAT(SALES_DATE,'%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT FROM ONLINE_SALE WHERE SALES_DATE BETWEEN '2022-03-01 00:00:00' AND '2022-03-31 23:59:59..

[프로그래머스] 식품분류별 가장 비싼 식품의 정보 조회하기(2차 풀이)

📢 본 포스팅은 Growth/Practice 게시글 (https://sy038680.tistory.com/242) 문제에 대한 2차 풀이입니다. 기존 풀이에서는 WHERE절에 서브쿼리로 조인해서 가격 최대값을 카테고리별로 추출해서 메인 쿼리 조건에서 문제에서 요구하는 카테고리만 추출해서 출력. ↓ 새로 풀면서는 WHERE절에 () IN 으로 푼 다른 문제가 생각나서 카테고리별 최대가격을 이 문법으로 출력하면서 AND로 조건 추가해서 카테고리를 미리 걸러줘보았다. SELECT CATEGORY, PRICE AS MAX_PRICE, PRODUCT_NAME FROM FOOD_PRODUCT WHERE (CATEGORY, PRICE) IN (SELECT CATEGORY, MAX(PRICE) FROM FOOD_PRO..

[프로그래머스] 즐겨찾기가 가장 많은 식당 정보 출력하기(2차 풀이)

📢 본 포스팅은 Growth/Practice 게시글 (https://sy038680.tistory.com/239) 문제에 대한 2차 풀이입니다. 답만 생각하다가 냅다 UNION 으로 풀었다가 문제 구분에 GROUP BY 관련 문제라는 것을 보고 다시 풀이를 해보기로 했다. WHERE절에서 FOOD_TYPE별로 FAVORITES의 최대값을 찾는 것에 () IN 을 활용하면 간단하게 풀 수 있었다. SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES FROM REST_INFO WHERE (FOOD_TYPE, FAVORITES) IN (SELECT FOOD_TYPE, MAX(FAVORITES) FROM REST_INFO GROUP BY 1) ORDER BY 1 DESC WHE..

[프로그래머스] 그룹별 조건에 맞는 식당 목록 출력하기 (2차 풀이)

📢 본 포스팅은 Growth/Practice 게시글 (https://sy038680.tistory.com/241 )문제에 대한 2차 풀이입니다. 기존 풀이에서는 WHERE절 내 서브쿼리까지 JOIN을 사용한 테이블에서 쿼리를 추출했는데 다시 풀어보면서 WHERE절 컬럼 조건을 MEMBER_NAME이 아닌 MEMBER_ID로 잡아주면 조인 없이 REST_REVIEW테이블에서 리뷰를 가장 많이 작성한 회원의 아이디를 조건으로 설정할 수 있었다. SELECT MP.MEMBER_NAME, RR.REVIEW_TEXT, DATE_FORMAT(RR.REVIEW_DATE, '%Y-%m-%d') REVIEW_DATE FROM MEMBER_PROFILE MP INNER JOIN REST_REVIEW RR ON MP.MEM..

[프로그래머스] 상품별 오프라인 매출 구하기(2차 풀이)

📢 본 포스팅은 Growth/Practice 게시글 (https://sy038680.tistory.com/235) 문제에 대한 2차 풀이입니다. 기존 풀이는 WITH절을 이용해서 풀었는데 WITH절을 이용할 필요가 없는 문제였다. 풀이중 LEFT JOIN을 사용했더니 PRODUCT 테이블에서 오프라인 판매정보가 없던 상품들에 대해 컬럼값 Null로 데이터가 출력되는 것을 발견했다. 이를 제외하기 위해 INNER JOIN을 사용하고 매출액 = ( 판매가 x 판매량 ) 가격 x 총 판매수량 를 PRODUCT_CODE별로 GROUPING하고 집계함수를 사용해서 출력해주었다. SELECT PD.PRODUCT_CODE, PD.PRICE * SUM(OS.SALES_AMOUNT) AS SALES FROM PRODUC..

[프로그래머스] 조건에 맞는 도서 리스트 출력하기

📢 본 포스팅에 활용되는 기본 문제 및 자료 출처는 프로그래머스 코딩테스트 연습, https://school.programmers.co.kr/learn/challenges?page=1&languages=mysql%2Coracle임을 밝힙니다. ■ 문제 문제 설명 다음은 어느 한 서점에서 판매중인 도서들의 도서 정보(BOOK) 테이블입니다. BOOK 테이블은 각 도서의 정보를 담은 테이블로 아래와 같은 구조로 되어있습니다. Column name Type Nullable Description BOOK_ID INTEGER FALSE 도서 ID CATEGORY VARCHAR(N) FALSE 카테고리 (경제, 인문, 소설, 생활, 기술) AUTHOR_ID INTEGER FALSE 저자 ID PRICE INTEGE..