2025/04 5

[MySQL] 프로그래머스 특정 세대의 대장균 찾기

문제:3세대의 대장균의 ID 를 출력- 결과는 대장균의 ID 에 대해 오름차순 정렬 해결방법:1. 3세대 대장균만 찾기 위해서 1, 2 세대의 대장균 ID 를 구한다.2. ID 와 PARENT_ID 를 기준으로 한 JOIN 을 활용 예시 코드:SELECT T4.IDFROM ECOLI_DATA T4INNER JOIN ( SELECT T1.ID, T1.PARENT_ID FROM ECOLI_DATA T1 INNER JOIN ( SELECT ID, PARENT_ID FROM ECOLI_DATA WHERE PARENT_ID IS NULL ) T2 ON T1.PARENT_ID = T2.ID ) T3ON T4.PARENT_ID = T3.ID..

[SQL] 연습 2025.04.15

[MySQL] 프로그래머스 업그레이드 된 아이템 구하기

문제:희귀도가 'RARE'인 아이템들의 모든 다음 업그레이드 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력- 결과는 아이템 ID를 기준으로 내림차순 정렬 해결방법:1. PARENT_ITEM_ID 가 RARITY 가 'RARE' 인 ITEM_ID 로만 이루어져야함.2. 위에서 필터링한 결과에 ITEM_INFO 테이블을 INNER JOIN 예시 코드:SELECT INFO.ITEM_ID, INFO.ITEM_NAME, INFO.RARITYFROM ITEM_INFO INFOINNER JOIN( SELECT * FROM ITEM_TREE WHERE PARENT_ITEM_ID IN ( SELECT ITEM_ID F..

[SQL] 연습 2025.04.14

[MySQL] 프로그래머스 오프라인/온라인 판매 데이터 통합하기

문제:2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력- OFFLINE_SALE 테이블의 판매데이터의 USER_ID 값은 NULL 로 표시- 결과는 판매일을 기준으로 오름차순, 상품 ID 를 기준으로 오름차순, 유저 ID 를 기준으로 오름차순 정렬 해결방법:1. 판매일은 WHERE BETWEEN 으로 조건 설정2. 판매 날짜는 DATE_FORMAT() 으로 형식 설정3. 오프라인과 온라인 상품 판매 테이블을 UNION ALL4. ORDER BY 로 정렬 순서 설정 예시코드:(SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNTFROM ONLINE_S..

[SQL] 연습 2025.04.05

[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] 연습 2025.04.04

[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
1