[Programmers] 59411번 - 오랜 기간 보호한 동물(2) [MySQL]
문제 링크 1. 문제 풀이 DATEDIFF 함수를 활용해 보호 기간을 구할 수 있으며 이를 기준으로 ORDER BY를 해주면 보호 기간이 길었던 순으로 정렬할 수 있다. 2. 쿼리 SELECT i.ANIMAL_ID, i.NAME FROM ANIMAL_INS AS i JOIN ANIMAL_OUTS AS o ON i.ANIMA...
문제 링크 1. 문제 풀이 DATEDIFF 함수를 활용해 보호 기간을 구할 수 있으며 이를 기준으로 ORDER BY를 해주면 보호 기간이 길었던 순으로 정렬할 수 있다. 2. 쿼리 SELECT i.ANIMAL_ID, i.NAME FROM ANIMAL_INS AS i JOIN ANIMAL_OUTS AS o ON i.ANIMA...
문제 링크 1. 문제 풀이 중성화 여부는 LIKE와 NOT LIKE를 통해 판단할 수 있다. 2. 쿼리 SELECT i.ANIMAL_ID, i.ANIMAL_TYPE, i.NAME FROM ANIMAL_INS AS i JOIN ANIMAL_OUTS AS o ON i.ANIMAL_ID = o.ANIMAL_ID WHERE ...
문제 링크 1. 문제 풀이 아직 입양을 못간 동물은 ANIMAL_INS에는 존재하지만 ANIMAL_OUTS에는 존재하지 않는 동물이다. 따라서 LEFT JOIN으로 찾을 수 있으며 LIMIT을 활용해 3마리만 필터링했다. 2. 쿼리 SELECT i.NAME, i.DATETIME FROM ANIMAL_INS AS i LEFT JOI...
문제 링크 1. 문제 풀이 두 테이블을 JOIN 후 DATETIME의 비교로 보호 시작일보다 입양일이 빠른지 알 수 있다. 2. 쿼리 SELECT i.ANIMAL_ID, i.NAME FROM ANIMAL_INS AS i JOIN ANIMAL_OUTS AS o ON i.ANIMAL_ID = o.ANIMAL_ID WHERE i...
문제 링크 1. 문제 풀이 입양간 기록은 있는데 보호소에 들어온 기록이 없는 동물은 ANIMAL_OUTS에는 존재하는데 ANIMAL_INS에는 없는 동물들이다. 따라서 LEFT JOIN으로 해당 동물들을 찾으면 된다. 2. 쿼리 SELECT o.ANIMAL_ID, o.NAME FROM ANIMAL_OUTS AS o LEFT JOI...
문제 링크 1. 문제 풀이 CASE 문을 활용해서 대장균 개체의 크기별로 다르게 출력하면 된다. 2. 쿼리 SELECT ID, CASE WHEN SIZE_OF_COLONY > 1000 THEN 'HIGH' WHEN SIZE_OF_COLONY > 100 THEN 'MEDIUM' ...
문제 링크 1. 문제 풀이 JOIN 이후 부서로 그룹핑을 해서 ROUND 함수와 AVG 집계함수로 평균 연봉을 구하면 된다. 2. 쿼리 SELECT d.DEPT_ID, d.DEPT_NAME_EN, ROUND(AVG(e.SAL)) AS AVG_SAL FROM HR_DEPARTMENT AS d JOIN HR_EM...
문제 링크 1. 문제 풀이 서브쿼리로 Python이나 C# 스킬의 코드를 가져와서 비트 AND 연산을 해줬다. 2. 쿼리 SELECT ID, EMAIL, FIRST_NAME, LAST_NAME FROM DEVELOPERS WHERE SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE...
문제 링크 1. 문제 풀이 WHERE 절로 완료된 중고 거래를 먼저 필터링 후 회원 ID로 그룹핑을 해줬다. 이후 총거래금액을 기준으로 HAVING 절로 그룹 필터링을 해주면 된다. 2. 쿼리 SELECT u.USER_ID, u.NICKNAME, SUM(b.PRICE) AS TOTAL_SALES FROM US...
문제 링크 1. 문제 풀이 2022년 1월의 도서를 먼저 필터링 후 카테고리 별로 그룹핑을 해줬다. 2. 쿼리 SELECT b.CATEGORY, SUM(s.SALES) FROM BOOK AS b JOIN BOOK_SALES AS s ON b.BOOK_ID = s.BOOK_ID WHERE s.SALES_DATE...