본문 바로가기

카테고리 없음

241204 TIL_데이터 분석 과정 (프로그래머스 상품 별 오프라인 매출 구하기)

JOIN 사용법 참고하기

https://yoo-hyeok.tistory.com/98 

 

문제 설명

 

문제 

 

풀이 과정

각 테이블에서 필요한 정보(PRICE, 를 합쳐 주어야 한다. 이를 위해 INNER JOIN 함수를 사용해주었다. 

SELECT P.PRODUCT_CODE,
       SUM(P.PRICE*O.SALES_AMOUNT) AS SALES 
FROM PRODUCT AS P
     INNER JOIN OFFLINE_SALE AS O ON P.PRODUCT_ID = O.PRODUCT_ID
GROUP BY P.PRODUCT_CODE
ORDER BY SALES DESC, P.PRODUCT_CODE ASC

 

 

2. DATEDIFF 함수 

두 날짜 사이의 차이를 반환하는 함수이다. 

 

<2> DATEDIFF 함수

 

DATEDIFF 함수는 문자 그대로 두 날짜 간의 차이를 DATE(일)로 가지고 오는 역할을 합니다.

사용법은 아래와 같이 간단합니다. 사용자가 원하는 두 날짜를 인수로 넣어주면 되겠습니다.

 

DATEDIFF(날짜1, 날짜2)

 

내부의 계산은 날짜 1 - 날짜 2로 진행되므로, 순서에 유의

참고로 날짜 1보다 날짜 2가 더 나중 시간이면, -가 붙은 상태로 출력됨 

 

[1] 사용 형태

 

SELECT DATEDIFF("2021-07-09 00:00:00", "1991-07-29 14:00:00");

 

SELECT DATEDIFF("2021-07-09", "1991-07-29");

 

결과는 모두 아래와 같이 동일하게 10938 이 나오게 됩니다. 10938을 '일'을 의미합니다.

 

예시

오랜 기간 보호한 동물(2)

SELECT I.ANIMAL_ID, 
       I.NAME
FROM ANIMAL_INS AS I
     INNER JOIN ANIMAL_OUTS AS O ON I.ANIMAL_ID=O.ANIMAL_ID
ORDER BY DATEDIFF(I.DATETIME, O.DATETIME) DESC
LIMIT 2;

 

두 테이블을 합쳐서 동물이 보호소에 들어온 시각과 입양을 간 시각을 알아내야 한다.  

따라서 두 테이블에 공통으로 들어와 있는 ANIMAL_ID로 연결 시켜 준다. 

datediff 함수를 사용하여 날짜의 차이를 출력한다.