DBMS Day15 krx 예제

김지원·2022년 6월 29일
0

DBMS

목록 보기
15/17

  • 4개의 파일 다 집어넣고 SELECT COUNT 한 결과

DATE_ADD

DATE_ADD(대상 일시, INTERVAL x y);
  • 대상 일시에 y주기 x만큼 추가

DATE_SUB

DATE_SUB(대상일시, INTERVAL x y);
  • 대상 일시에 y주기 x만큼 차감
  • 주기(y)에는 MILLISECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR 가능

  • 일년을 더하고 한달을 또 더하고 싶다면 이런식으로 적을 수 있다.
    DATE_ADD를 사용하고 싶다면
    SELECT DATE_ADD(DATE_ADD(NOW(), INTERVAL 1 YEAR) + INTERVAL 1 MONTH ); 이렇게 쓸 수 있다.

52주최고 / 최저
: 어떤시점에서 뒤돌아봤을때 1년의 최고/최저가를 보여준다.

오늘 날짜를 기준으로 52주최고 52주 최고, 최저를 SELECT 하시오.(사진 참고)

20개짜리를 계산하려면 20개의 표본이 필요하다.

Windowed Function

: 윈도우 함수

PARTITION BY

: 통계함수의 대상이 될 행을 나누는 기준열

ORDER BY ~

: 통계함수의 대상이 될 행의 정렬

ROWS BETWEEN

: 통계함수의 대상이 될 행(레코드)을 정의한다.

  • 정의가 2개 이상 일 경우 BETWEEN 필요

x PRECENDING

: 현재 레코드 기준 앞서 나온 x개

x FOLLOWING

: 현재 레코드 기준 뒤에 나올 x개

CURRENT ROW

: 현재 레코드

OVER()

: (~)에 대한

ROWS BETWEEN 19 PRECEDING AND CURRENT ROW 
 행                앞선           현재
19개의 앞선 (PRECEDING)
AVG(`close`) OVER (ORDER BY `date` ROWS BETWEEN 19 PRECEDING AND CURRENT ROW ) AS `20일 이평`
  • 19개의 먼저나온 레코드와 현재 레코드에 대한 행의 평균을 내고싶다.
    ORDER BY date 이게 없으면 순서가 뒤죽박죽인 상태로 평균을 내버린다.
  • 평균구하는 것은 DB 아니면 프로그래밍의 영역이 될 수 있다. 윈도우 함수는 굳이 꼭 알아야하는 것은 아니다.

  • 여기에 AVG말고도 MIN MAX...다 사용가능하다.

profile
Software Developer : -)

0개의 댓글