1. 입양 시각 구하기 (1)

문제 programmers.co.kr/learn/courses/30/lessons/59412

정답 

설명

(1) 서브 쿼리 - 인라인 뷰 (FROM 절에 사용하는 서브 쿼리)

  • TO_CHAR 함수 사용 : DATETIME 데이터를 'HH24' 형태로 변환
  • 'HH24' : 24시간제를 의미

 

(2) 부모 쿼리

  • HOUR의 값이 9이상 20 미만의 데이터를 추출 > WHERE 절
  • HOUR별로 그룹화 함 > GROUP BY절
  • HOUR을 기준으로 정렬 > ORDER BY절

 

2.  입양 시각 구하기 (2)

문제 programmers.co.kr/learn/courses/30/lessons/59413

정답

MySQL : 변수를 생성하여 연산

ORACLE : Level 을 이용하여 0~23까지의 값을 만들어 줌

설명

(1) 서브 쿼리 - 인라인 뷰 OUTS

  • DATETIME 데이터를 'HH24' 24시간 형태로 변환 
  • GROUP BY을 사용하여, 시간 별 컬럼 개수를 구한다.

 

(2) 서브 쿼리 - 인라인 뷰 HOURS

  • CONNECT BY LEVEL <= NUMBER 함수는 1부터 NUMBER까지 1씩 추가 되는 함수 (계층적 데이터를 표현하기 위해 사용)

 

(3) 부모 쿼리

  • 시간별(HOURS.HOUR)로 입양된 동물(NVL(CNT, 0))을 출력
  • NVL(값, 지정 값) 함수 : 값이 NULL인 경우 지정 값을 출력
  • HOURS의 HOUR과 OUTS의 HOUR을 기준으로 외부 JOIN
  • 시간(HOUR) 순 정렬 > ORDER BY절

+ Recent posts