목록Algorithm/Programmers (31)
꿈꾸는 개발자의 블로그
문제 관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 1) 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다. 문제 풀이 두 테이블을 JOIN 후, ANIMAL_INS 테이블의 입양일이 ANIMAL_OUTS 테이블의 보호 시작일보다 빠른 동물을 찾기 위하여 WHERE 조건을 건다. 전체 코드 SELECT a.ANIMAL_ID, a.NAME FROM ANIMAL_INS a JOIN ANIMAL_OUTS b ON a.ANIMAL_ID = b.ANIMAL_ID WHERE a.DATETIME > b.DATETIME ORDER BY a.DATETIME
문제 천재지변으로 인해 일부 데이터가 유실되었습니다. 1) 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요. 문제 풀이 두 테이블을 JOIN 후, 보호소에 들어온 동물의 정보를 담은 ANIMAL_INS 테이블에 기록이 없는 동물을 찾기 위하여 WHERE 조건을 건다. (IS NULL로 데이터의 유무 확인) 전체 코드 SELECT b.ANIMAL_ID, b.NAME FROM ANIMAL_INS a RIGHT OUTER JOIN ANIMAL_OUTS b ON a.ANIMAL_ID = b.ANIMAL_ID WHERE a.ANIMAL_ID IS NULL ORDER BY 1
문제 1) FOOD_PRODUCT와 FOOD_ORDER 테이블에서 2) 생산일자가 2022년 5월인 식품들의 3) 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요. 문제 풀이 FOOD_PRODUCT와 FOOD_ORDER 테이블을 JOIN 한다. 해당 날짜인 식품들만 조회하기 위하여 WHERE 조건을 건다. 위의 결과에서 식품 별 매출을 구하기 위하여 식품 ID와 이름을 GROUP BY로 묶고, 총 매출을 sum 함수로 조회한다. 전체 코드 SELECT a.PRODUCT_ID, a.PRODUCT_NAME, sum(AMOUNT * PRICE) AS TOTAL_SALES FROM ..
문제 1) 7월 아이스크림 총 주문량과 상반기의 아이스크림 2) 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회하는 SQL 문을 작성해주세요. 문제 풀이 테이블의 컬럼 수와 데이터 형식이 모두 일치하고, SHIPMENT_ID는 동일하지 않은 상태이기 때문에 두 테이블을 합치기 위하여 UNION ALL 연산을 사용한다. 상위 3개의 맛을 조회하기 위하여 GROUP BY로 묶어준 뒤, 총 주문량을 sum 함수로 구하여 정렬한다. 전체 코드 SELECT FLAVOR FROM ( SELECT FLAVOR FROM ( SELECT * FROM FIRST_HALF UNION ALL SELECT * FROM JULY ) GROUP BY FLAVOR ORDER BY sum(TOTAL_ORDER) DESC )..
문제 CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 2) 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 3) 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 2) 30일간의 4) 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬해주세요. 문제 풀이 이 문..