프로그래머스 SQL 고득점 Kit 106문제 MySQL 풀이 (작성중)
프로그래머스 SQL 고득점 Kit 106문제
https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit
요즘 SQL 코딩테스트 문제도 종종 나와서 SQL 고득점 Kit을 MySQL로 풀어보았습니다.
SQL 문제는 SELECT * FROM 테이블명을 주석으로 숨겨두고, 구현한 로직을 /* */로 감싸서 전체 데이터를 확인하며 검수하면 좋습니다.
SELECT 33문제 풀이
조건에 맞는 도서 리스트 출력하기
SELECT
BOOK_ID,
DATE_FORMAT(PUBLISHED_DATE, "%Y-%m-%d") AS PUBLISHED_DATE
FROM
BOOK
WHERE
PUBLISHED_DATE LIKE '2021%'
AND
CATEGORY = '인문'
ORDER BY PUBLISHED_DATE
DATE_FORMAT 인수로 “YYYY-MM-DD”를 넣으면 정상 동작하지 않습니다.
조건에 부합하는 중고거래 댓글 조회하기
SELECT
ugb.TITLE,
ugb.BOARD_ID,
ugr.REPLY_ID,
ugr.WRITER_ID,
ugr.CONTENTS,
DATE_FORMAT(ugr.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE
FROM
USED_GOODS_BOARD ugb
INNER JOIN
USED_GOODS_REPLY ugr ON ugb.BOARD_ID = ugr.BOARD_ID
WHERE
ugb.CREATED_DATE LIKE '2022-10%'
ORDER BY ugr.CREATED_DATE, ugb.TITLE
3월에 태어난 여성 회원 목록 출력하기
SELECT
MEMBER_ID,
MEMBER_NAME,
GENDER,
DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH
FROM
MEMBER_PROFILE
WHERE
DATE_FORMAT(DATE_OF_BIRTH, '%m') = '03'
AND
GENDER = 'W'
AND
TLNO IS NOT NULL
ORDER BY MEMBER_ID
흉부외과 또는 일반외과 의사 목록 출력하기
과일로 만든 아이스크림 고르기
평균 일일 대여 요금 구하기
인기있는 아이스크림
강원도에 위치한 생산공장 목록 출력하기
12세 이하인 여자 환자 목록 출력하기
서울에 위치한 식당 목록 출력하기
재구매가 일어난 상품과 회원 리스트 구하기
모든 레코드 조회하기
오프라인/온라인 판매 데이터 통합하기
역순 정렬하기
아픈 동물 찾기
어린 동물 찾기
동물의 아이디와 이름
여러 기준으로 정렬하기
상위 n개 레코드
조건에 맞는 회원수 구하기
업그레이드 된 아이템 구하기
Python 개발자 찾기
조건에 맞는 개발자 찾기
잔챙이 잡은 수 구하기
가장 큰 물고기 10마리 구하기
특정 물고기를 잡은 총 수 구하기
대장균들의 자식의 수 구하기
대장균의 크기에 따라 분류하기 1
특정 형질을 가지는 대장균 찾기
부모의 형질을 모두 가지는 대장균 찾기
대장균의 크기에 따라 분류하기 2
특정 세대의 대장균 찾기
멸종위기의 대장균 찾기
SUM, MAX, MIN 10문제 풀이
가장 비싼 상품 구하기
SELECT
MAX(PRICE) AS MAX_PRICE
FROM
PRODUCT
가격이 제일 비싼 식품의 정보 출력하기
최댓값 구하기
최솟값 구하기
동물 수 구하기
중복 제거하기
조건에 맞는 아이템들의 가격의 총합 구하기
물고기 종류 별 대어 찾기
잡은 물고기 중 가장 큰 물고기의 길이 구하기
연도별 대장균 크기의 편차 구하기
GROUP BY 24문제 풀이
자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
SELECT
CAR_TYPE,
COUNT(CAR_TYPE) AS CARS
FROM
CAR_RENTAL_COMPANY_CAR
WHERE
OPTIONS RLIKE ('통풍시트|열선시트|가죽시트')
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE
REGEXP 또는 RLIKE 연산자를 사용하면 정규표현식에 해당하는 데이터를 추출할 수 있습니다.
대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
성분으로 구분한 아이스크림 총 주문량
조건에 맞는 사용자와 총 거래금액 조회하기
즐겨찾기가 가장 많은 식당 정보 출력하기
카테고리 별 도서 판매량 집계하기
자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기
진료과별 총 예약 횟수 출력하기
저자 별 카테고리 별 매출액 집계하기
식품분류별 가장 비싼 식품의 정보 조회하기
고양이와 개는 몇 마리 있을까
동명 동물 수 찾기
년, 월, 성별 별 상품 구매 회원 수 구하기
입양 시각 구하기(1)
입양 시각 구하기(2)
가격대 별 상품 개수 구하기
언어별 개발자 분류하기
조건에 맞는 사원 정보 조회하기
연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기
부서별 평균 연봉 조회하기
노선별 평균 역 사이 거리 조회하기
물고기 종류 별 잡은 수 구하기
월별 잡은 물고기 수 구하기
특정 조건을 만족하는 물고기별 수와 최대 길이 구하기
IS NULL 8문제 풀이
경기도에 위치한 식품창고 목록 출력하기
SELECT
WAREHOUSE_ID,
WAREHOUSE_NAME,
ADDRESS,
CASE WHEN FREEZER_YN IS NULL THEN 'N' ELSE FREEZER_YN END AS FREEZER_YN
FROM
FOOD_WAREHOUSE
WHERE
ADDRESS LIKE '경기도%'
ORDER BY WAREHOUSE_ID
MySQL에 IS_NULL 함수는 없고, CASE WHEN 문으로 NULL이면 대체하여 출력 가능합니다.
SELECT
WAREHOUSE_ID,
WAREHOUSE_NAME,
ADDRESS,
IFNULL(FREEZER_YN, 'N') AS FREEZER_YN
FROM
FOOD_WAREHOUSE
WHERE
ADDRESS LIKE '경기도%'
ORDER BY WAREHOUSE_ID
IFNULL 함수를 사용하면 더 간결하게 구현할 수 있습니다.
이름이 없는 동물의 아이디
이름이 있는 동물의 아이디
NULL 처리하기
나이 정보가 없는 회원 수 구하기
ROOT 아이템 구하기
업그레이드 할 수 없는 아이템 구하기
잡은 물고기의 평균 길이 구하기
JOIN 12문제 풀이
주문량이 많은 아이스크림들 조회하기
SELECT A.FLAVOR
FROM
(
SELECT
j.FLAVOR,
j.TOTAL_ORDER + f.TOTAL_ORDER AS ADD_TOTAL_ORDER
FROM
(SELECT FLAVOR, SUM(TOTAL_ORDER) AS TOTAL_ORDER FROM JULY GROUP BY FLAVOR) j
INNER JOIN
FIRST_HALF f ON j.FLAVOR = f.FLAVOR
ORDER BY
ADD_TOTAL_ORDER DESC
LIMIT 3
) A
GROUP BY와 SUM으로 JULY 테이블의 FLAVOR 별 TOTAL_ORDER 합계를 구할 수 있습니다.
5월 식품들의 총매출 조회하기
특정 기간동안 대여 가능한 자동차들의 대여비용 구하기
조건에 맞는 도서와 저자 리스트 출력하기
그룹별 조건에 맞는 식당 목록 출력하기
없어진 기록 찾기
있었는데요 없었습니다
오랜 기간 보호한 동물(1)
보호소에서 중성화한 동물
상품 별 오프라인 매출 구하기
상품을 구매한 회원 비율 구하기
FrontEnd 개발자 찾기
String, Date 19문제 풀이
조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기
특정 옵션이 포함된 자동차 리스트 구하기
SELECT
CAR_ID,
CAR_TYPE,
DAILY_FEE,
OPTIONS
FROM
CAR_RENTAL_COMPANY_CAR
WHERE
OPTIONS RLIKE '네비게이션'
ORDER BY CAR_ID DESC
자동차 대여 기록 별 대여 금액 구하기
조건에 부합하는 중고거래 상태 조회하기
조건별로 분류하여 주문상태 출력하기
조건에 맞는 사용자 정보 조회하기
대여 기록이 존재하는 자동차 리스트 구하기
자동차 대여 기록에서 장기/단기 대여 구분하기
자동차 평균 대여 기간 구하기
취소되지 않은 진료 예약 조회하기
루시와 엘라 찾기
이름에 el이 들어가는 동물 찾기
중성화 여부 파악하기
오랜 기간 보호한 동물(2)
카테고리 별 상품 개수 구하기
DATETIME에서 DATE로 형 변환
연도 별 평균 미세먼지 농도 조회하기
한 해에 잡은 물고기 수 구하기
분기별 분화된 대장균의 개체 수 구하기
Leave a comment