Dev Hyeri

◖코딩 테스트◗▬▬▬▬▬▬▬▬▬/프로그래머스 17

[SQL KIT] (2024) 자동차 대여 기록 별 대여 금액 구하기(설명/코드/정답)

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/151141 핵심. 대여기간, 할인율을 구하려고 했는가 정상 코드. WITH RENTAL_DATE_AND_DURATION_TYPE AS ( SELECT *, CASE WHEN DATEDIFF(END_DATE, START_DATE) + 1 < 7 THEN NULL WHEN DATEDIFF(END_DATE, START_DATE) + 1 < 30 THEN '7일 이상' WHEN DATEDIFF(END_DATE, START_DATE) + 1 < 90 THEN '30일 이상' ELSE '90일 이상' END AS R_DURATION_TYPE , DATEDIFF(END_DATE, START_DATE..

[SQL KIT] (2024) 자동차 대여 기록에서 장기/단기 대여 구분하기(설명/코드/정답)

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/151138 정상 코드. SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE, '%Y-%m-%d') AS START_DATE, DATE_FORMAT(END_DATE,'%Y-%m-%d') AS END_DATE, IF((TIMESTAMPDIFF(DAY, START_DATE, END_DATE)+1)>=30, '장기 대여','단기 대여') AS RENT_TYPE FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE START_DATE LIKE '2022-09%' ORDER BY HISTORY_ID DESC 내부 동작 순서 1. FR..

[SQL KIT] (2024) 그룹별 조건에 맞는 식당 목록 출력하기(설명/코드/정답)

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/131124 정상 코드. 방법 1 윈도우 함수사용. 리뷰 많이 쓴 MEMBER_ID 찾기 SELECT MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE,'%Y-%m-%d') AS REVIEW_DATE FROM MEMBER_PROFILE JOIN REST_REVIEW USING (MEMBER_ID) WHERE MEMBER_ID IN (SELECT MEMBER_ID FROM (SELECT *, DENSE_RANK() OVER (ORDER BY COUNT(*) DESC) AS REVIEW_RANK FROM REST_REVIEW GROUP BY MEMBER..

[프로그래머스] 속도 2배, 단축키(shortcuts, hot key)

필수 단축키 이동 ✓ Ctrl + →←: 낱말 단위로 이동 ✓ Fn + →← : 줄의 양 끝으로 이동 빠른 선택 ✓ Ctrl + D : 커서가 있는 낱말 선택 ✓ Ctrl + L : 커서가 는 한 줄 선택 ✓ Fn + Shift + ↑↓: 커서가 있는 곳을 구분으로 위(아래) 전체 선택 ✓ Fn + Shift + ←→ : 한 행에서 커서가 있는 곳을 구분으로 위(아래) 전체 선택 ✓ Ctrl + A : 전체 선택 편집 ✓ Ctrl + Shift + ↑↓ : 커서가 있는 행을 윗줄(or 아랫줄)과 줄바꿈 ✓ Ctrl + Shift + D : 커서가 있는 줄 복제 ✓ Ctrl + X : 커서가 있는 줄 제거 ✓ Ctrl + / : 주석처리 ✓ Ctrl + [ ] : 인덴트 참고 단축키 ✓ Ctrl + J :..

[SQL KIT] (2024)특정 기간동안 대여 가능한 자동차들의 대여비용 구하기(설명/코드/정답)

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/157339 정상 코드. SELECT CAR_ID, C.CAR_TYPE, FLOOR(30*DAILY_FEE*(1-DISCOUNT_RATE/100)) AS FEE FROM CAR_RENTAL_COMPANY_CAR C JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN P USING(CAR_TYPE) WHERE C.CAR_TYPE IN ('세단', 'SUV') AND CAR_ID NOT IN (SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE END_DATE >= '2022-11-1' AND START_DATE = 500..

[SQL KIT] (2024) NULL 처리하기(설명/코드/정답)

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/59410 정상 코드. 방법 1.COALESCE 사용 SELECT ANIMAL_TYPE, COALESCE(NAME, 'No name') AS NAME, SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID 방법 2. IFNULL사용 SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') AS NAME, SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID 방법 3. CASE표현식 사용 SELECT ANIMAL_TYPE, CASE WHEN NAME IS NULL THEN 'No name' EL..

[SQL KIT] (2024) 입양 시각 구하기(2)(설명/코드/정답)

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/59413 [목차] 1. 정상 코드 - 방법 1. 번호 붙이기 함수 ROW_NUMBER() 사용 - 방법 2. 재귀 CTE 사용 - 방법 3. 변수(@num)를 사용( 반복문과 유사한 효과 사용) 2. 0~23 정수 테이블 만드는 방법 3. Advanced. CTE, SET 정상 코드. 방법 1. 번호 붙이기 함수 ROW_NUMBER() 사용 SELECT HOUR, COUNT(ANIMAL_ID) AS COUNT FROM ( SELECT (ROW_NUMBER() OVER () - 1) AS HOUR FROM ANIMAL_OUTS LIMIT 24) AS 24NUM_TABLE LEFT JOIN..

[SQL KIT] (2024) 입양 시각 구하기(1)(설명/코드/정답)

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/59412 정상 코드. SELECT HOUR(DATETIME) AS HOUR, COUNT(*) AS COUNT FROM ANIMAL_OUTS WHERE HOUR(DATETIME) BETWEEN '9' AND '19' GROUP BY HOUR ORDER BY HOUR 내부 동작 순서 1. FROM 절 FROM ANIMAL_OUTS: ANIMAL_OUTS 테이블에서 데이터를 추출합니다. 2. WHERE 절 '09:00:00'부터 '19:59:59'까지의 시간 범위에 해당하는 레코드를 선택 (문제의 조건인 09:00부터 19:59까지'와 '09:00:00부터 19:59:59까지'는 시간상으로 ..

[SQL KIT] (2024) 년, 월, 성별 별 상품 구매 회원 수 구하기(설명/코드/정답)

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/131532 정상 코드. SELECT YEAR(SALES_DATE) AS YEAR, MONTH(SALES_DATE) AS MONTH, GENDER, COUNT(DISTINCT USER_ID) AS USERS FROM ONLINE_SALE JOIN USER_INFO USING (USER_ID) WHERE GENDER IS NOT NULL GROUP BY YEAR, MONTH, GENDER ORDER BY YEAR, MONTH, GENDER 내부 동작 순서 1. FROM 절 ONLINE_SALE 테이블과 USER_INFO 테이블을 USER_ID를 사용하여 조인합니다. 2. WHERE 절 GE..

[SQL KIT](2024) 식품분류별 가장 비싼 식품의 정보 조회하기(설명/코드/정답)

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/131116 정상 코드. 방법 1. 상관 서브 쿼리 사용 SELECT CATEGORY, PRICE, PRODUCT_NAME FROM FOOD_PRODUCT F WHERE CATEGORY IN('과자', '국', '김치', '식용유') AND PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT AS S WHERE S.CATEGORY = F.CATEGORY) ORDER BY PRICE DESC 방법 2. 윈도우 함수 사용 SELECT CATEGORY, PRICE, PRODUCT_NAME FROM FOOD_PRODUCT WHERE CATEGORY IN('과자', '국..