728x90
반응형

코딩테스트/SQL 14

[MySQL] 헤비유저가 소유한 장소

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/77487문제 요약PLACES 테이블에서 공간을 둘 이상 등록한 "헤비 유저"의 공간 정보를 조회하고, 결과를 ID 순으로 정렬해야 합니다.풀이 방법헤비 유저 식별:HOST_ID를 기준으로 그룹화하여 각 유저가 등록한 공간의 개수를 계산합니다.COUNT(*) >= 2 조건을 만족하는 유저를 식별합니다.헤비 유저의 공간 정보 조회:서브쿼리 또는 CTE를 이용해 필터링된 유저의 HOST_ID를 기반으로 원래 테이블에서 데이터를 조회합니다.결과 정렬:결과를 ID 기준으로 정렬합니다.정답 코드SELECT p.ID, p.NAME, p.HOST_IDFROM PLACES as pWHERE p.HOST_ID..

코딩테스트/SQL 2024.12.23

[MySQL] - 오랜 기간 보호한 동물(1)

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/59044문제 요약ANIMAL_INS와 ANIMAL_OUTS 테이블을 사용하여, 아직 입양되지 않은 동물 중 보호소에 가장 오래 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL 쿼리를 작성해야 합니다. 결과는 보호 시작일 기준 오름차순으로 정렬합니다.풀이 방법 ANIMAL_INS 테이블의 동물 중 ANIMAL_OUTS 테이블에 입양 기록이 없는 동물을 찾아야 하므로 LEFT JOIN을 사용합니다.LEFT JOIN 후, ANIMAL_OUTS 테이블의 ANIMAL_ID가 NULL인 경우, 해당 동물은 입양되지 않았음을 의미합니다.보호 시작일(DATETIME)을 기준으로 정렬하여 상위 3..

코딩테스트/SQL 2024.10.26

[MySQL] 조건별로 분류하여 주문상태 출력하기

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/131113문제 요약주어진 FOOD_ORDER 테이블에서 2022년 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 그리고 출고 여부를 조회하는 SQL 쿼리를 작성해야 합니다.출고 여부는 출고일(OUT_DATE)이 2022년 5월 1일 이전이면 "출고완료", 그 이후면 "출고대기", 출고일이 미정이면 "출고미정"으로 구분합니다.결과는 주문 ID를 기준으로 오름차순 정렬해야 합니다.풀이 방법 SELECT 문에서 주문 ID, 제품 ID, 출고일자, 출고 여부를 선택합니다.출고 여부는 CASE문을 사용하여 OUT_DATE 값에 따라 결정합니다.OUT_DATE가 2022-05-01 이전이거나..

코딩테스트/SQL 2024.10.26

[MySQL] 카테고리 별 도서 판매량 집계하기

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/144855문제 요약BOOK 테이블과 BOOK_SALES 테이블을 활용하여 2022년 1월에 판매된 도서의 카테고리별 총 판매량을 구하는 문제입니다. 결과는 카테고리명을 기준으로 오름차순으로 정렬해야 합니다.풀이 방법 JOIN: BOOK 테이블과 BOOK_SALES 테이블은 BOOK_ID를 기준으로 연결됩니다. 따라서 BOOK_ID를 이용하여 두 테이블을 INNER JOIN합니다.날짜 필터링: BOOK_SALES 테이블에서 2022년 1월에 해당하는 판매량만을 필터링해야 합니다. 즉, SALES_DATE가 2022년 1월에 해당하는 데이터만 선택합니다.카테고리별 판매량 합산: BOOK 테이블의..

코딩테스트/SQL 2024.10.25

[MySQL] - 있었는데요 없었습니다

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/59043문제 요약주어진 두 테이블 ANIMAL_INS와 ANIMAL_OUTS에서 보호소에 들어온 동물들 중에서 보호 시작일(DATETIME) 보다 입양일(DATETIME) 이 더 빠른 동물의 ANIMAL_ID와 NAME을 조회해야 합니다. 결과는 보호 시작일이 빠른 순서대로 정렬되어야 합니다.풀이 방법 INNER JOIN: 두 테이블 ANIMAL_INS와 ANIMAL_OUTS는 ANIMAL_ID를 통해 연결되어 있습니다. 따라서 두 테이블을 ANIMAL_ID를 기준으로 조인하여 보호 시작일과 입양일 정보를 모두 가져옵니다.입양일 조건 필터링: 보호 시작일보다 입양일이 더 빠른 동물을 필터링해..

코딩테스트/SQL 2024.10.25

[MySQL] - 오랜 기간 보호한 동물(2)

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/59411문제 요약주어진 문제는 동물 보호소에서 입양된 동물들 중에서 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 문제입니다. 보호 기간은 동물이 보호소에 들어온 날짜(ANIMAL_INS의 DATETIME)와 입양된 날짜(ANIMAL_OUTS의 DATETIME) 간의 차이로 계산됩니다. 보호 기간이 긴 순으로 결과를 정렬하여 상위 두 마리의 동물 정보를 조회해야 합니다.풀이 방법테이블 조인: ANIMAL_INS와 ANIMAL_OUTS 테이블을 ANIMAL_ID를 기준으로 조인합니다. 이렇게 해야 보호 시작일과 입양일을 함께 사용할 수 있습니다.보호 기간 계산: 두 테이블의..

코딩테스트/SQL 2024.10.18

[MySQL] - 대여 기록이 존재하는 자동차 리스트 구하기

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/157341#문제 요약주어진 문제는 두 개의 테이블(CAR_RENTAL_COMPANY_CAR, CAR_RENTAL_COMPANY_RENTAL_HISTORY)을 이용하여 '세단' 종류의 자동차들 중 10월에 대여를 시작한 기록이 있는 자동차 ID를 중복 없이 출력하는 문제입니다. 자동차 ID는 내림차순으로 정렬해야 합니다.풀이 방법 테이블 조인: 자동차 대여 기록(CAR_RENTAL_COMPANY_RENTAL_HISTORY)과 자동차 정보(CAR_RENTAL_COMPANY_CAR) 테이블을 CAR_ID를 기준으로 조인해야 합니다. 이는 자동차의 종류와 대여 기록을 함께 가져오기 위함입니다.조건 ..

코딩테스트/SQL 2024.10.18

[MySQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/164671문제 요약USED_GOODS_BOARD와 USED_GOODS_FILE 두 개의 테이블에서 조회수가 가장 높은 중고 거래 게시물의 첨부파일 경로를 조회하는 문제입니다. 파일 경로는 /home/grep/src/로 시작하며, 게시글 ID로 디렉토리를 구분하고, 파일 이름은 파일 ID + 파일 이름 + 파일 확장자로 구성됩니다. 첨부파일 경로는 파일 ID를 기준으로 내림차순 정렬해야 합니다.풀이 방법 조회수가 가장 높은 게시물을 조회하기 위해 USED_GOODS_BOARD 테이블에서 views를 기준으로 내림차순 정렬한 후, 상위 1개의 게시글을 선택합니다.선택된 게시글의 BOARD_ID를..

코딩테스트/SQL 2024.10.12

[MySQL] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/157340문제 요약주어진 문제는 자동차 대여 기록을 담고 있는 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 2022년 10월 16일에 대여 중인 자동차와 그렇지 않은 자동차를 구분하여 출력하는 SQL 쿼리를 작성하는 것입니다. 각 자동차는 여러 대여 기록을 가질 수 있으며, 해당 날짜에 대여 중인 자동차는 '대여중', 그렇지 않은 경우는 '대여 가능'으로 표시해야 합니다. 결과는 자동차 ID를 기준으로 내림차순 정렬해야 합니다.풀이 방법 그룹화(Grouping): 각 자동차(CAR_ID)는 여러 대여 기록이 있을 수 있으므로, CAR_ID를 기준으로 그룹화합니다.대..

코딩테스트/SQL 2024.10.09

[MySQL] 대장균의 크기에 따라 분류하기 1

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/299307문제 요약주어진 문제는 대장균의 정보를 담고 있는 ECOLI_DATA 테이블에서 대장균의 크기(SIZE_OF_COLONY)에 따라 분류한 값을 출력하는 SQL 쿼리를 작성하는 것입니다. 크기는 3가지로 분류됩니다:100 이하: 'LOW'100 초과 1000 이하: 'MEDIUM'1000 초과: 'HIGH'최종적으로 ID와 크기 분류 결과를 출력하고, ID 기준으로 오름차순 정렬하는 것이 목표입니다.풀이 방법CASE 문 사용: 대장균의 크기(SIZE_OF_COLONY)를 기준으로 'LOW', 'MEDIUM', 'HIGH'로 분류해야 하므로 CASE 문을 사용하여 조건을 설정합니다.SI..

코딩테스트/SQL 2024.10.09
728x90
반응형