수색…


중앙 이동 평균

6 개월 (126 영업일) 중심의 이동 평균 가격 계산 :

SELECT TradeDate, AVG(Px) OVER (ORDER BY TradeDate ROWS BETWEEN 63 PRECEDING AND 63 FOLLOWING) AS PxMovingAverage
FROM HistoricalPrices

TradeDate 범위의 시작과 끝에서 반환되는 행의 앞뒤에 최대 63 개의 행이 걸리기 때문에 가운데 정렬 되지 않습니다. 가장 큰 TradeDate에 도달하면 63 개의 이전 값만 찾을 수 있습니다. 평균에 포함 시키십시오.

타임 스탬프가 적용된 이벤트 목록에서 최신 단일 항목을 찾습니다.

이벤트를 기록하는 테이블에는 종종 이벤트가 발생한 시간을 기록하는 날짜 시간 필드가 있습니다. 가장 최근의 단일 이벤트를 찾는 것은 어려울 수 있습니다. 정확히 동일한 타임 스탬프로 두 개의 이벤트가 기록 될 가능성이 있기 때문입니다. row_number ()를 통해 (by order by ...) 모든 레코드의 고유 한 순위를 확인하고 맨 위의 레코드를 선택합니다 (여기서 my_ranking = 1).

select *
from (
    select 
        *,
        row_number() over (order by crdate desc) as my_ranking
    from sys.sysobjects
) g
where my_ranking=1

동일한 기술을 사용하여 잠재적으로 중복 값이있는 데이터 세트에서 단일 행을 반환 할 수 있습니다.

최근 30 개 항목의 이동 평균

마지막 30 개 품목의 이동 평균

SELECT
    value_column1,
    (   SELECT
            AVG(value_column1) AS moving_average
        FROM Table1 T2
        WHERE ( SELECT
                    COUNT(*)
                FROM Table1 T3
                WHERE date_column1 BETWEEN T2.date_column1 AND T1.date_column1
                ) BETWEEN 1 AND 30
    ) as MovingAvg
FROM Table1 T1


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow