본문 바로가기

SQL

(94)
[프로그래머스/Lv.2] 성분으로 구분한 아이스크림 총 주문량 - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 두 개의 테이블을 조인해 아이스크림 성분 타입으로 묶어 성분 타입별 총주문량을 출력하는 간단한 문제였다. SELECT INGREDIENT_TYPE, SUM(TOTAL_ORDER) AS TOTAL_ORDER FROM FIRST_HALF JOIN ICECREAM_INFO USING(FLAVOR) GROUP BY INGREDIENT_TYPE ORDER BY TOTAL_ORDER
[프로그래머스/Lv.3] 오랜 기간 보호한 동물(1) - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 제출한 오답 아래 정답과 같은 코드를 원했는데 생각을 못했다. SELECT ins.NAME, ins.DATETIME FROM ANIMAL_INS ins, ANIMAL_OUTS outs WHERE ins.NAME != outs.NAME ORDER BY ins.DATETIME LIMIT 3 📌 정답 아래처럼 풀 수도 있고 LEFT JOIN으로 풀 수도 있으니 여러 방법을 눈에 익힌다면 좋을 것 같다! SELECT NAME, DATETIME FROM ANIMAL_INS WHERE ANIMAL_ID NO..
[프로그래머스/Lv.2] 조건에 맞는 도서와 저자 리스트 출력하기 - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 제출한 오답 처음 제출한 오답은 WHERE 절에 BOOK의 AUTHOR_ID와 AUTHOR의 AUTHOR_ID가 같다는 조건을 넣지 않아 틀렸다. SELECT book.BOOK_ID, author.AUTHOR_NAME, DATE_FORMAT(book.PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE FROM BOOK book JOIN AUTHOR author WHERE book.CATEGORY = '경제' ORDER BY book.PUBLISHED_DATE 📌 정답..
[프로그래머스/Lv.2] 상품 별 오프라인 매출 구하기 - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 출력해야하는 컬럼명을 먼저 적어주고 시작하면 더 쉽게 풀 수 있는 것 같다. 처음에는 GROUP BY를 쓰지 않고 그냥 출력했더니 모든 값이 더해져 매출액이 한 번에 500만원이 나왔다.(...) 생각해보니 ID 별로 매출액을 구해야 하므로 GROUP BY를 사용해 ID 별로 묶어 SUM을 하도록 했다. SELECT PRODUCT_CODE, SUM(SALES_AMOUNT * PRICE) AS SALES FROM PRODUCT JOIN OFFLINE_SALE USING(PRODUCT_ID) G..
[프로그래머스/Lv.3] 카테고리 별 도서 판매량 집계하기 - MySQL 📌 문제 📌 제출한 오답 SELECT CATEGORY, SUM(SALES) AS TOTAL_SALES FROM BOOK, BOOK_SALES WHERE SALES_DATE LIKE '2022-01%' GROUP BY CATEGORY ORDER BY CATEGORY 📌 정답 SELECT book.CATEGORY, SUM(sale.SALES) AS TOTAL_SALES FROM BOOK book JOIN BOOK_SALES sale USING (BOOK_ID) WHERE sale.SALES_DATE LIKE '2022-01%' GROUP BY book.CATEGORY ORDER BY book.CATEGORY 📌 기억할 것 JOIN을 할 때 ON을 사용할 수도 있고, USING을 사용할 수도 있다. 아래 예시..
[프로그래머스/Lv.2] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 - MySQL 📌 문제 📌 제출한 오답 처음에는 통풍시트, 열선시트, 가죽시트가 포함되어 있다면 조회하도록 했다. 그러나 실패.. SELECT CAR_TYPE, COUNT(*) AS CARS FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS LIKE '%통풍시트%' OR '%열선시트%' OR '%가죽시트%' GROUP BY CAR_TYPE ORDER BY CAR_TYPE 알고보니 내가 의도한대로 사용하려면 아래와 같이 작성해줘야했다. SELECT CAR_TYPE, COUNT(*) AS CARS FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS LIKE '%통풍시트%' OR OPTIONS LIKE '%열선시트%' OR OPTIONS LIKE '%가죽시트%' GROUP B..
[프로그래머스/Lv.1] 12세 이하인 여자 환자 목록 출력하기 - MySQL 📌 문제 📌 정답 전에 풀었던 문제에서 배운 IFNULL로 풀 수 있었다. SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, 'NONE') AS TLNO FROM PATIENT WHERE AGE
[프로그래머스/Lv.2] 진료과별 총 예약 횟수 출력하기 - MySQL 📌 문제 📌 제출한 오답 아래 정답과 뭐가 다른가싶겠지만 ORDER BY절에서 별칭을 따옴표(')가 아닌 백틱(`)으로 감싼 것이 차이점이다. SELECT MCDP_CD AS '진료과 코드',COUNT(*) AS '5월예약건수' FROM APPOINTMENT WHERE APNT_YMD LIKE '2022-05%' GROUP BY MCDP_CD ORDER BY '5월예약건수', '진료과 코드'; 📌 정답 SELECT MCDP_CD AS '진료과 코드',COUNT(*) AS '5월예약건수' FROM APPOINTMENT WHERE APNT_YMD LIKE '2022-05%' GROUP BY MCDP_CD ORDER BY `5월예약건수`, `진료과 코드`; 📌 기억할 것 한글 별칭을 로직에 사용할 때는 따옴표..