- 4개의 파일 다 집어넣고 SELECT COUNT 한 결과
DATE_ADD(대상 일시, INTERVAL x y);
- 대상 일시에 y주기 x만큼 추가
DATE_SUB(대상일시, INTERVAL x y);
- 대상 일시에 y주기 x만큼 차감
- 일년을 더하고 한달을 또 더하고 싶다면 이런식으로 적을 수 있다.
DATE_ADD를 사용하고 싶다면
SELECT DATE_ADD(DATE_ADD(NOW(), INTERVAL 1 YEAR) + INTERVAL 1 MONTH );
이렇게 쓸 수 있다.
52주최고 / 최저
: 어떤시점에서 뒤돌아봤을때 1년의 최고/최저가를 보여준다.
오늘 날짜를 기준으로 52주최고 52주 최고, 최저를 SELECT 하시오.(사진 참고)
20개짜리를 계산하려면 20개의 표본이 필요하다.
: 윈도우 함수
: 통계함수의 대상이 될 행을 나누는 기준열
: 통계함수의 대상이 될 행의 정렬
: 통계함수의 대상이 될 행(레코드)을 정의한다.
- 정의가 2개 이상 일 경우 BETWEEN 필요
x PRECENDING
: 현재 레코드 기준 앞서 나온 x개
x FOLLOWING
: 현재 레코드 기준 뒤에 나올 x개
CURRENT ROW
: 현재 레코드
: (~)에 대한
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 BYdate
이게 없으면 순서가 뒤죽박죽인 상태로 평균을 내버린다.
평균구하는 것은 DB 아니면 프로그래밍의 영역이 될 수 있다. 윈도우 함수는 굳이 꼭 알아야하는 것은 아니다.
여기에 AVG말고도 MIN MAX...다 사용가능하다.