Banner

My Tech Blog (SQL)

📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/131530 문제요약PRICE 를 만원 단위 구간으로 나누기예 10,000원 이상 ~ 20,000원 미만 → 10,000각 구간 별 상품 개수 계산해서 PRODUCTS 컬럼에 추력구간 값(PRICE_GROUP)은 해당 구간의 최소 금액으로 표시결과는 가격대 오름차순 정렬❌ 2. 실패한 시도SELECT (PRICE / 10000) * 10000 AS PRICE_GROUP, COUNT(*) AS PRODUCTSFROM PRODUCTGROUP BY PRICE_GROUPORDER BY PRICE_GROUP; 처음에 FLOOR()을 안했더니 천원 단위로 구간이 나뉘고, 소수점 넷째..
📑 1. 문제설명❌ 2. 실패한 시도간단한 문제인데 어렵게 생각해서 오래 걸렸던 문제처음에 접근한 방법은 DATE_FORMAT() 으로 DATETIME을 포매팅 하는 것이었다.이 때 24시간제이기 때문에 %H를 썼는데 이렇게 하면 9시는 9로 출력되는 것이 아니고 0이 붙어서 09가 된다.그래서 %k로 바꿔서 출력했는데도 이번에는 정답 처리 안 됨 문제에서 포맷 함수를 쓰는 걸 의도 안 한 경우이다.그냥 시간만 뽑는 문제인데 %H나 %k로 풀어서 오답처리 됐다.%k까지 썼는데도 틀렸던 이유가 아마 “문자열 출력” 때문일 확률이 높다. 왜냐하면 DATE_FORMAT()이나 %k로 뽑아도 실제 출력은 문자열로 처리되기 때문이다.문제 채점은 정수 비교를 하는 경우가 있어서 "09" vs 9 차이로 틀린 판..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/151137 문제요약자동차 종류별로 해당 옵션이 하나라도 있는 차가 몇 대 인지 세는 문제대상 테이블: CAR_RENTAL_COMPANY_CAR조건: options 컬럼에 '통풍시트', '열선시트', '가죽시트' 중 하나 이상 포함출력 컬럼: CAR_TYPE, CARS(= COUNT(*))그룹 기준: CAR_TYPE정렬 기준: CAR_TYPE 오름차순❌ 2. 실패한 시도-- 코드를 입력하세요-- OPTIONS IN ('통풍시트', '열선싱트', '가죽시트')-- 종류별로 group by CAR_TYPE-- 몇 대? COUNT(*) AS CARSSELECT CAR_TYPE, COUNT(..
· SQL&DataBase
📑 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/157340 문제요약2022년 10월 16일에해당 날짜 포함해서 대여 중인 자동차는 '대여중'그렇지 않으면 '대여 가능'컬럼 이름은 AVAILABILITY자동차 ID 기준 내림차순 정렬자동차는 중복 없이 1번만 출력조건 정리START_DATE END_DATE >= '2022-10-16' → 이 범위에 해당하면 대여중⭐ 정답코드SELECT CAR_ID, CASE WHEN MAX(CASE WHEN DATE '2022-10-16' BETWEEN START_DATE AND END_DATE THEN 1 ..
📑 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/284527 3개의 테이블(HR_DEPARTMENT, HR_EMPLOYEES, HR_GRADE)을 조인해서 2022년 한 해(상·하반기) 평가 점수가 가장 높은 사원의 정보를 구하는 문제 문제요약2022년 데이터만 조회 (WHERE g.year = 2022)상·하반기 점수를 합산해서 SCORE 컬럼으로 표시최고 점수를 받은 사원만 조회출력 컬럼: SCORE, EMP_NO, EMP_NAME, POSITION, EMAIL집계 함수(SUM) 사용 시 GROUP BY에 나머지 컬럼들 포함 ⭐ 정답코드WITH total_scores AS ( SELECT e.emp_no, ..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/151139​테이블 : CAR_RENTAL_COMPANY_RENTAL_HISTORY조건start_date 기준: 2022년 8월 1일 ~ 2022년 10월 31일해당 기간 동안 대여 횟수가 5회 이상인 자동차(CAR_ID)만이 조건을 만족하는 차들에 대해 월별(Car ID별) 대여 회수 출력컬럼명 : RECORDS정렬월 기준 오름차순, CAR_ID 기준 내림차순주의특정 월에 대여가 0회이면 결과에서 제외 ⭐ 3. 정답코드WITH ValidCars AS ( SELECT car_id FROM car_rental_company_rental_history WHERE start..
📑 1. 문제설명❌ 2. 실패한 시도없음 ⭐ 3. 정답코드-- 코드를 입력하세요SELECT i.name, i.datetimeFROM animal_ins i LEFT OUTER JOIN animal_outs o ON i.animal_id = o.animal_idWHERE o.animal_id is nullORDER BY i.datetime ascLIMIT 3;animal_ins 테이블에는 있는데 animal_outs에는 없는 동물을 찾으면 된다.그렇다면 기준테이블은 animal_ins이고, 이 테이블을 왼쪽에 놓고 LEFT OUTER JOIN을 수행한다.JOIN된 테이블에서 o.animal_id가 null인 데이터를 조회하면 animal_ins에는 있고 animal_outs에는 없는 동물들 목록이 나온다..
📑 1. 문제설명❌ 2. 실패한 시도쉬워서 바로 성공 ⭐ 3. 정답코드-- 코드를 입력하세요SELECT i.animal_id, i.nameFROM animal_ins i INNER JOIN animal_outs o ON i.animal_id = o.animal_idWHERE o.datetime SQL에서 날짜(date)는 시간적으로 오래될수록 작은 값이라는 것만 알고 있으면 쉽게 푼다.DATE_FORMAT 안해도 되고 INNER JOIN이라 쉬운 문제인데 이게 왜 lv3 이지?lv2 정도 될 거 같은데...
인절미였던것
'SQL' 태그의 글 목록 (2 Page)
상단으로