특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 [Lv.4]
# JOIN
https://school.programmers.co.kr/learn/courses/30/lessons/157339
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 자동차 종류가 '세단' 또는 'SUV'인 자동차 중 2022년 11월 1일부터 2022년 11월 30일 까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해 자동차 ID, 자동차 종류, 대여 금액 리스트를 출력
- 결과는 대여 금액을 기준으로 내림차순 정렬
- 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬
- 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬
주문량이 많은 아이스크림들 조회하기 [Lv.4]
# JOIN
https://school.programmers.co.kr/learn/courses/30/lessons/133027
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 가장 큰 순서대로 사우이 3개의 맛을 조회
SELECT FLAVOR
FROM (SELECT FLAVOR, (F.TOTAL_ORDER + SUM(J.TOTAL_ORDER)) TOT
FROM FIRST_HALF F LEFT JOIN JULY J USING(FLAVOR)
GROUP BY FLAVOR
ORDER BY TOT DESC) AS F
LIMIT 3
5월 식품들의 총매출 조회하기 [Lv.4]
# JOIN
https://school.programmers.co.kr/learn/courses/30/lessons/131117
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회
- 결과는 총매출을 기준으로 내림차순 정렬
- 총매출이 같다면 식품ID를 기준으로 오름차순 정렬
SELECT PRODUCT_ID, PRODUCT_NAME, SUM(PRICE * AMOUNT) AS TOTAL_SALES
FROM FOOD_PRODUCT P RIGHT JOIN FOOD_ORDER O USING(PRODUCT_ID)
WHERE PRODUCE_DATE LIKE '2022-05%'
GROUP BY PRODUCT_ID
ORDER BY TOTAL_SALES DESC, PRODUCT_ID ASC;
조건에 맞는 도서와 저자 리스트 출력하기 [Lv.2]
# JOIN
https://school.programmers.co.kr/learn/courses/30/lessons/144854
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- '경제' 카테고리에 속하는 도서들의 도서ID, 저자명, 출판일 리스트 출력
- 결과는 출판일 기준으로 오름차순 정렬
SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') PUBLISHED_DATE
FROM BOOK B LEFT JOIN AUTHOR A USING(AUTHOR_ID)
WHERE CATEGORY = '경제'
ORDER BY PUBLISHED_DATE ASC;
그룹별 조건에 맞는 식당 목록 출력하기 [Lv.4]
# JOIN
https://school.programmers.co.kr/learn/courses/30/lessons/131124
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 리뷰를 가장 많이 작성한 회원의 리뷰를 조회
- 회원 이름, 리뷰 텍스트, 리뷰 작성일이 출력되도록 작성
- 결과는 리뷰 작성일을 기준으로 오름차순 정렬
- 리뷰 작성일이 같다면 리뷰 텍스트를 기준으로 오름차순 정렬
SELECT MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE,'%Y-%m-%d') REVIEW_DATE
FROM MEMBER_PROFILE P RIGHT JOIN REST_REVIEW R USING(MEMBER_ID)
WHERE R.MEMBER_ID = (SELECT MEMBER_ID
FROM REST_REVIEW
GROUP BY MEMBER_ID
ORDER BY COUNT(REST_ID) DESC
LIMIT 1)
ORDER BY REVIEW_DATE ASC, REVIEW_TEXT ASC;
없어진 기록 찾기 [Lv.3]
# JOIN
https://school.programmers.co.kr/learn/courses/30/lessons/59042
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID순으로 조회
SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_INS I RIGHT JOIN ANIMAL_OUTS O USING(ANIMAL_ID)
WHERE I.ANIMAL_ID IS NULL
ORDER BY ANIMAL_ID ASC;
있었는데요 없었습니다 [Lv.3]
# JOIN
https://school.programmers.co.kr/learn/courses/30/lessons/59043
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회
- 결과는 보호 시작일이 빠른 순으로 조회
SELECT I.ANIMAL_ID, I.NAME
FROM ANIMAL_INS I LEFT JOIN ANIMAL_OUTS O USING(ANIMAL_ID)
WHERE I.DATETIME > O.DATETIME
ORDER BY I.DATETIME ASC
오랜 기간 보호한 동물(1) [Lv.3]
# JOIN
https://school.programmers.co.kr/learn/courses/30/lessons/59044
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회
- 결과는 보호 시작일 순으로 조회
SELECT I.NAME, I.DATETIME
FROM ANIMAL_INS I LEFT JOIN ANIMAL_OUTS O USING(ANIMAL_ID)
WHERE O.DATETIME IS NULL
ORDER BY I.DATETIME ASC
LIMIT 3;
SELECT NAME, DATETIME
FROM(SELECT I.NAME, I.DATETIME, RANK() OVER(ORDER BY I.DATETIME ASC) RANKING
FROM ANIMAL_INS I LEFT JOIN ANIMAL_OUTS O USING(ANIMAL_ID)
WHERE O.DATETIME IS NULL) AS F
WHERE RANKING <= 3
ORDER BY DATETIME ASC;
보호소에서 중성화한 동물 [Lv.4]
# JOIN
https://school.programmers.co.kr/learn/courses/30/lessons/59045
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 보호소에 들어올 당시 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회
- 아이디 순으로 조회
SELECT I.ANIMAL_ID, I.ANIMAL_TYPE, I.NAME
FROM ANIMAL_INS I LEFT JOIN ANIMAL_OUTS O USING(ANIMAL_ID)
WHERE I.SEX_UPON_INTAKE LIKE 'Intact%' AND (O.SEX_UPON_OUTCOME LIKE 'Neutered%' OR O.SEX_UPON_OUTCOME LIKE 'Spayed%')
ORDER BY I.ANIMAL_ID ASC;
상품 별 오프라인 매출 구하기 [Lv.2]
# JOIN
https://school.programmers.co.kr/learn/courses/30/lessons/131533
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 상품코드 별 매출액(판매가*판매량) 합계를 출력
- 결과는 매출액을 기준으로 내림차순 정렬
- 매출액이 같다면 상품코드를 기준으로 오름차순 정렬
SELECT P.PRODUCT_CODE, (P.PRICE * SUM(O.SALES_AMOUNT)) SALES
FROM PRODUCT P RIGHT JOIN OFFLINE_SALE O USING(PRODUCT_ID)
GROUP BY O.PRODUCT_ID
ORDER BY SALES DESC, PRODUCT_CODE ASC;
상품을 구매한 회원 비율 구하기 [Lv.5]
# JOIN
https://school.programmers.co.kr/learn/courses/30/lessons/131534
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 회원의 비율(= 2021년에 가입한 회원 중 상품을 구매한 회원 수 / 2021년에 가입한 전체 회원 수)을 년, 월 별로 출력
- 상품을 구매한 회원의 비율은 소수점 두번째자리에서 반올림
- 전체 결과는 년을 기준으로 오름차순 정렬
- 년이 같다면 월을 기준으로 오름차순 정렬
SELECT YEAR(SALES_DATE) YEAR, MONTH(SALES_DATE) MONTH,
COUNT(DISTINCT(USER_ID)) PURCHASED_USERS,
ROUND(COUNT(DISTINCT(USER_ID))/TOT, 1) PURCHASED_RATIO
FROM (SELECT *, COUNT(USER_ID) OVER() AS TOT
FROM USER_INFO
WHERE JOINED LIKE '2021%') AS T1
INNER JOIN
(SELECT *
FROM USER_INFO U LEFT JOIN ONLINE_SALE O USING(USER_ID)
WHERE JOINED LIKE '2021%') AS T2
USING(USER_ID)
WHERE SALES_DATE IS NOT NULL
GROUP BY YEAR, MONTH
ORDER BY YEAR, MONTH;
FrontEnd 개발자 찾기 [Lv.4]
# JOIN
https://school.programmers.co.kr/learn/courses/30/lessons/276035
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- Front End 스킬을 가진 개발자의 정보 조회
- 조건에 맞는 개발자의 ID, 이메일, 이름, 성을 조회
- 결과는 ID를 기준으로 오름차순 정렬
SELECT DISTINCT D.ID, D.EMAIL, D.FIRST_NAME, D.LAST_NAME
FROM DEVELOPERS D, SKILLCODES S
WHERE S.CATEGORY = 'Front End' AND D.SKILL_CODE & S.CODE != 0
ORDER BY D.ID ASC;
'코딩테스트 > SQL' 카테고리의 다른 글
[Programmers]프로그래머스 코딩테스트 SQL 고득점 Kit | GROUP BY (4) | 2025.05.10 |
---|---|
[Programmers]프로그래머스 코딩테스트 SQL 고득점 Kit | String, Date (1) | 2025.05.02 |
[Programmers] 프로그래머스 코딩테스트 SQL 고득점 Kit | SUM, MAX, MIN (0) | 2025.04.16 |
[Programmers] 프로그래머스 코딩테스트 SQL 고득점 Kit | IS NULL (0) | 2025.04.16 |
[Programmers] 프로그래머스 코딩테스트 SQL 고득점 Kit | SELECT (4) | 2025.04.15 |