목록2024/12/31 (3)
YataNox
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bkSTCy/btsLCHzLmYA/L1Ed7kZ1xvcXKOKDos5jGK/img.png)
문제 DATEDIFF로 비교하면 될 것같지만 시/분/초 단위로 입양일이 더 빠를 땐 구분할 수 없다.TIMESTAMPDIFF로 SECOND 단위로 비교한다.코드SELECT ai.ANIMAL_ID, ai.NAMEFROM ANIMAL_INS ai JOIN ANIMAL_OUTS ao ON ai.ANIMAL_ID = ao.ANIMAL_IDWHERE TIMESTAMPDIFF(SECOND, ao.DATETIME, ai.DATETIME) > 0ORDER BY ai.DATETIME;
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/pKiuq/btsLAcuLXaY/xrCjCqNtqqYi79T4bwyXq1/img.png)
문제WHERE절 에 2022년 1월 데이터만 조회하게 걸러내고 카테고리별로 Grouping 하고 SUM함수를 사용하여 수를 집계했다.코드SELECT b.CATEGORY, SUM(bs.SALES) AS TOTAL_SALESFROM BOOK b JOIN BOOK_SALES bs ON b.BOOK_ID = bs.BOOK_IDWHERE DATE_FORMAT(bs.SALES_DATE, '%Y-%m') = '2022-01'GROUP BY CATEGORYORDER BY 1 ASC;
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/blYml7/btsLBy4yoZD/UoEtjJcFPjZXs4V7VkV5hK/img.png)
문제 두 테이블의 ID를 기준으로 병합한 뒤 입양 테이블이 NULL인 행 중에 날짜가 가장 오래된 것 3개만 출력한다. 코드WITH temp AS ( SELECT ai.NAME, ai.DATETIME FROM ANIMAL_INS ai LEFT JOIN ANIMAL_OUTS ao on ai.ANIMAL_ID = ao.ANIMAL_ID WHERE ao.DATETIME IS NULL ORDER BY 2 limit 3)SELECT NAME, DATETIMEFROM tempORDER BY 2 ASC;