전체 글 217

[MySQL] 프로그래머스 그룹별 조건에 맞는 식당 목록 출력하기

문제:리뷰를 가장 많이 작성한 회원의 리뷰들을 조회- 회원 이름, 리뷰 텍스트, 리뷰 작성일을 출력- 결과는 리뷰 작성일을 기준으로 오름차순, 리뷰 텍스트를 기준으로 오름차순 해결방법:1. 회원별 리뷰수를 구한 뒤 최대값 구하기2. 리뷰 수 최대값을 갖는 회원 구하기3. 회원 이름과 회원 ID 로 조인4. 리뷰 테이블에서 이전에 구한 가장 많이 작성한 회원 리스트와 비교(조건)5. 정렬 조건 설정하기 예시 코드:SELECT MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE, '%Y-%m-%d') REVIEW_DATEFROM MEMBER_PROFILE MINNER JOIN REST_REVIEW RON M.MEMBER_ID = R.MEMBER_IDWHERE M.MEMB..

[SQL] 연습 13:53:15

[MySQL] 프로그래머스 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기

문제:사원별 성과금 정보 조회- 사번, 성명, 평가 등급, 성과금 조회- 사번 기준 오름차순 해결방법:1. 점수에 따른 평가 등급, 평가 등급에 따른 성과금 계산 시 CASE 문 사용2. 사원별 평가 등급 조회를 위해 GROUP BY 로 SCORE 에 대한 AVG 계산3. 사원 정보 테이블을 INNER JOIN 예시 코드:SELECT EMP.EMP_NO, EMP_NAME, G.GRADE, (CASE WHEN G.GRADE = 'S' THEN SAL * 0.2 WHEN G.GRADE = 'A' THEN SAL * 0.15 WHEN G.GRADE = 'B' THEN SAL * 0.1 ELSE SAL * 0 END) AS BONUSFROM HR_EMPLOYEES EMPINNER JO..

[SQL] 연습 2025.04.01

[MySQL] 프로그래머스 물고기 종류 별 대어 찾기

문제:물고기 종류 별로 가장 큰 물고기의 ID, 물고기 이름, 길이를 출력- 결과는 물고기의 ID에 대해 오름차순 정렬- 물고기 종류별 가장 큰 물고기는 1마리만 있음 해결방법:1. 물고기 종류 별 가장 큰 물고기 GROUP BY, MAX 로 조회2. 가장 큰 물고기 ID 는 서브쿼리로 조회3. 물고리 이름 테이블과 다시 한번 조인하여 조회 예시코드:SELECT ID, FISH_NAME, LENGTHFROM ( SELECT ID, T1.FISH_TYPE, LENGTH FROM FISH_INFO T1 INNER JOIN ( SELECT FISH_TYPE, MAX(LENGTH) MAX_LENGTH FROM FISH_INFO INFO GROUP BY FIS..

[SQL] 연습 2025.03.30

[MySQL] 프로그래머스 업그레이드 할 수 없는 아이템 구하기

문제:더 이상 업그레이드할 수 없는 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력- 아이템 ID를 기준으로 내림차순 정렬 해결방법:1. 더 이상 업그레이드 할 수 없는 아이템은 PARENT_ITEM_ID 에 아이템 ID 가 없음2. LEFT JOIN 후 IS NULL 사용하여 아이템 ID 가 없는 레코드만 조회 예시 코드:SELECT INFO.ITEM_ID, INFO.ITEM_NAME, INFO.RARITYFROM ITEM_INFO INFOLEFT JOIN ITEM_TREE TREEON INFO.ITEM_ID = TREE.PARENT_ITEM_IDWHERE TREE.PARENT_ITEM_ID IS NULLORDER BY INFO.ITEM_ID..

[SQL] 연습 2025.03.28

[MySQL] 프로그래머스 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기

문제:FISH_INFO에서 평균 길이가 33cm 이상인 물고기들을 종류별로 분류하여 잡은 수, 최대 길이, 물고기의 종류를 출력- 물고기 종류에 대해 오름차순으로 정렬- 10cm 이하의 물고기들은 10cm로 취급 해결방법:1. COUNT, AVG, MAX, GROUP BY 를 사용하여 물고기 종류별 평균 길이와 최대 길이 조회2. 조회한 테이블에서 WHERE 로 평균 길이가 33cm 이상인 물고기만 조회3. ORDER BY 로 오름차순 정렬 예시 코드:SELECT FISH_COUNT, MAX_LENGTH, FISH_TYPEFROM ( SELECT COUNT(1) FISH_COUNT, FISH_TYPE, AVG(IFNULL(LENGTH, 10)) AVG_LENGTH, MAX(IFNULL(LENG..

[SQL] 연습 2025.03.23

[MySQL] 프로그래머스 주문량이 많은 아이스크림들 조회하기

문제:7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회 해결방법:1. 아이스크림 주문량 테이블들을 UNION ALL2. SUM, GROUP BY 로 총 주문량을 계산3. ORDER BY 와 LIMIT 으로 상위 3개의 맛을 조회 예시 코드:SELECT FLAVORFROM ( SELECT FLAVOR, SUM(TOTAL_ORDER) TOTAL_ORDER FROM (SELECT * FROM FIRST_HALF UNION ALL SELECT * FROM JULY) T GROUP BY FLAVOR ORDER BY TOTAL_ORDER DESC) T2LIMIT 3;

[SQL] 연습 2025.03.02

[MySQL] 프로그래머스 조건에 부합하는 중고거래 댓글 조회하기

문제:USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회- 댓글 작성일을 기준으로 오름차순 정렬- 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬 해결방법:1. 게시글 ID 를 기준으로 BOARD 테이블과 REPLY 테이블을 조인2. WHERE 절에서 CREATED_DATE 에 대한 기간 기준 설정3. ORDER BY 에서 정렬 기준 설정 예시코드:SELECT TITLE, REPLY.BOARD_ID, REPLY_ID, WRITER_ID, CONTENTS, DATE_FORMAT(REPLY.CREATED_DATE, '%Y-%m-%d') AS CREATED_D..

[SQL] 연습 2025.03.01

[MySQL] 분기별 분화된 대장균의 개체 수 구하기

문제:각 분기(QUARTER)별 분화된 대장균의 개체의 총 수(ECOLI_COUNT)를 출력- 분기에는 'Q' 를 붙임- 분기에 대해 오름차순 정렬 해결방법:1. 분기를 QUARTER 함수로 계산2. GROUP BY 와 COUNT 를 사용하여 ECOLI_COUNT 를 출력 예시 코드:SELECT CONCAT(QUARTER(DIFFERENTIATION_DATE), 'Q') QUARTER, COUNT(ID) ECOLI_COUNTFROM ECOLI_DATAGROUP BY QUARTERORDER BY QUARTER;

[SQL] 연습 2025.02.28

[MySQL] 프로그래머스 노선별 평균 역 사이 거리 조회하기

문제:SUBWAY_DISTANCE 테이블에서 노선별로 노선, 총 누계 거리, 평균 역 사이 거리를 노선별로 조회- 총 누계거리는 테이블 내 존재하는 역들의 역 사이 거리의 총 합을 의미- 총 누계거리는 소수 둘째자리에서, 평균 역 사이 거리는 소수 셋째 자리에서 반올림 한 뒤 단위(km)를 함께 출력- 총 누계 거리를 기준으로 내림차순 정렬 해결방법:1. 총 누계 거리와 평균 역 사이의 거리는 SUM, AVG 를 GROUP BY 와 함께 사용2. CONCAT, ROUND 로 형식 맞추기3. ORDER BY 조건 설정에 주의 예시 코드:SELECT ROUTE , CONCAT(ROUND(SUM(D_BETWEEN_DIST), 1), 'km') TOTAL_DISTANCE , CONCAT(ROUND(A..

[SQL] 연습 2025.02.16

[MySQL] 프로그래머스 가장 큰 물고기 10마리 구하기

문제:FISH_INFO 테이블에서 가장 큰 물고기 10마리의 ID와 길이를 출력 - 길이를 기준으로 내림차순 정렬하고, 길이가 같다면 물고기의 ID에 대해 오름차순 정렬 - 가장 큰 물고기 10마리 중 길이가 10cm 이하인 경우는 없음 해결방법:1. 길이가 가장 큰 물고기 10 마리를 출력하기 위해서 길이를 기준으로 내림차순 정렬2. LIMIT 을 이용해서 10 마리 까지만 조회3. WHERE 에서 길이 조건 설정 예시 코드:SELECT ID, LENGTHFROM FISH_INFOWHERE LENGTH > 10ORDER BY LENGTH DESC, ID ASCLIMIT 10;

[SQL] 연습 2025.02.06

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

문제:테이블에서 대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차들에 대해서 해당 기간 동안의 월별 자동차 ID 별 총 대여 횟수(컬럼명: RECORDS) 리스트를 출력- 월을 기준으로 오름차순 정렬하고, 월이 같다면 자동차 ID를 기준으로 내림차순 정렬- 특정 월의 총 대여 횟수가 0인 경우에는 결과에서 제외 해결방법:1. 기간 내 총 대여 횟수가 5회 이상인 자동차 ID 값 구하기2. 월과 자동차 ID 값을 기준으로 COUNT() 하기3. WHERE 에서 기간 설정에 주의하기 예시 코드:SELECT MONTH(START_DATE) MONTH, T1.CAR_ID, COUNT(T1.CAR_ID) RECORDSFROM CAR_RENTAL_COMPANY_RE..

[SQL] 연습 2025.02.02

[MySQL] 프로그래머스 헤비 유저가 소유한 장소

문제:공간을 둘 이상 등록한 사람이 등록한 공간의 정보를 아이디 순으로 조회 해결방법:1. GROUP BY 와 COUNT 로 호스트별 등록 공간 수 카운트2. 등록 공간의 수가 2 이상인 호스트ID를 이용해서 장소 테이블 INNER JOIN 예시 코드:SELECT T1.ID, T1.NAME, T1.HOST_ID FROM PLACES T1INNER JOIN(SELECT HOST_ID, COUNT(HOST_ID)FROM PLACESGROUP BY HOST_IDHAVING COUNT(HOST_ID) >= 2) T2ON T1.HOST_ID = T2.HOST_IDORDER BY T1.ID;

[SQL] 연습 2025.01.29

[MySQL] 프로그래머스 년, 월, 성별 별 상품 구매 회원 수 구하기

문제:USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계 - 결과는 년, 월, 성별을 기준으로 오름차순 정렬 - 성별 정보가 없는 경우 결과에서 제외 해결방법:1. 유저 테이블과 판매내역 테이블을 INNER JOIN2. SALES_DATE 컬럼에서 YEAR와 MONTH 를 추출3. SELECT 절에서 COUNT DISTINCT 와 GROUP BY 를 사용하여 USER_ID 를 카운트4. WHERE 조건으로 성별이 NULL 값이 아닌 경우만 사용하도록 함 예시 코드:SELECT YEAR(SALES_DATE) YEAR, MONTH(SALES_DATE) MONTH, GENDER, COUNT(DISTINCT USER_ID) USERSFROM(SELECT ..

[SQL] 연습 2025.01.28

[MySQL] 프로그래머스 우유와 요거트가 담긴 장바구니

문제:우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회 해결 방법:1. 장바구니ID 별로 GROUP_CONCAT 을 해서 장바구니 내용을 조회2. 장바구니에 우유와 요거트가 같이 담겨있는지 조건 설정 예시 코드:SELECT CART_IDFROM (SELECT CART_ID, GROUP_CONCAT(NAME) NAMESFROM CART_PRODUCTSGROUP BY CART_ID) T1WHERE NAMES LIKE "%Milk%" AND NAMES LIKE "%Yogurt%"ORDER BY CART_ID;

[SQL] 연습 2025.01.26

[MySQL] 프로그래머스 저자 별 카테고리 별 매출액 집계하기

문제:2022년 1월의 도서 판매 데이터를 기준으로 저자 별, 카테고리 별 매출액(TOTAL_SALES = 판매량 * 판매가), 저자 ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEGORY), 매출액(SALES) 리스트를 출력 - 결과는 저자 ID를 오름차순, 카테고리를 내림차순 정렬 해결방법:1. 도서 판매 테이블에서 판매일에 대한 기준을 WHERE 절에서 설정2. 책 ID를 기준으로 한 INNER JOIN과 저자 ID 를 기준으로 한 INNER JOIN이 필요3. GROUP BY 로 저자 별, 카테고리 별 매출액을 계산 예시 코드:SELECT A.AUTHOR_ID, AUTHOR_NAME, CATEGORY, SUM(TOTAL_SALES) TOTAL_SALESFROM AUTH..

[SQL] 연습 2024.12.29