본문 바로가기
카테고리 없음

[SQL]. 21 SQL에서 이동평균선 구하기 Moving Average

by Hagrid 2023. 1. 31.
반응형

 

1. 이동평균선이란? 

 

종가기준 1320원 1300원 1300원 이렇게 3가지 행의 이동평균선은 ? -> 다 더해서 3으로 나누면 된다.

평균과 비슷한 개념이고

얼마나 이동했느냐 (얼마나 시간이 흘렀는지) 에 대한 평균이라고 보면 된다.

 

주로 트렌드를 이해할때 쓰이며  이평선이라고 부르기도 한다. 

상향세에 있는지 ? 하향세에 있는지와 같은 분석을 진행할수 있다. 

 

 

2. 이동평균선을 SQL에서 구하는 방법

window functions.를 이용해서 구할수 있다. 

 

윈도우 함수를 사용하는 쿼리를 사용할 수 있다.

예를 들어, 3의 슬라이딩 윈도우 크기를 가진 SQL의 예시를 보면 

 


SELECT id, 
value,
AVG(value) OVER (ORDER BY id ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) as 이동평균선
FROM data

의 결과로 

id | value | moving_avg
---+-------+-----------
 1 |    10 | 15.000000
 2 |    20 | 15.000000
 3 |    30 | 20.000000
 4 |    40 | 30.000000
 5 |    50 | 40.000000

위와 같은 결과를 얻을 수 있다. 

참고로 ORDER BY 구문은 행이 처리되어야하는 순서를 지정하고,

ROWS BETWEEN 2 PRECEDING AND CURRENT ROW는 윈도우 크기를 지정한다.

AVG 함수는 각 윈도우에 대한 평균을 계산한다

이동 평균 값은 현재 행과 2개의 앞 행의 값을 기반으로 각 행마다 계산된다. 

 

2 PRECEDING -> 2개 앞 으로 !

BETWEEN 2 PRECEDING AND CURRENT ROW -> 2개 앞으로 부터 현재까지 라는 뜻 

 

미국∙영국
[prisí:diŋ]
[A] [보통 the ~] (시간·장소의) 이전의(previous), 앞선, 선행하는; 바로 앞의; 전술의, 상기의
제안:
 
 
반응형

댓글