[SQL] OVER SUM ()를 사용하여 SQL 서버 2008 (ORDER BY ...)
SQLOVER SUM ()를 사용하여 SQL 서버 2008 (ORDER BY ...)
나는 CTE를 사용하려고하고 CROSS 결과 집합 가입하세요. 나는 현재 행에 이르기까지의 4 개 행을 요약하고 싶다. 예 온라인 나는 CTE를 만 새로 만든 테이블 (http://sqlandme.com/2011/08/17/sql-server-denali-over-rows-range/)를 사용하지 않습니다 발견했다. 구문은 작동해야하지만 오류가 " 'ROWS'근처의 구문이 잘못되었습니다"라는 얻을.
예제 출력은 다음과 같은 성명을 사용하여이 될 것입니다 : SUM (Y)의 합계 OVER (ORDER BY는 PRECEDING ROWS 4 X)
X Y SUM
1 7 0 No prev rows, so sum is 0
2 1 7 Sum = 7
3 2 8 = 1 + 7
4 5 10 = 2 + 1 + 7
5 7 15 = 5 + 2 + 1 + 7
6 34 15 = 7 + 5 + 2 + 1
7 32 48 = 34 + 7 + 5 + 2
사람이 쿼리에 잘못된 것에 대한 어떤 제안이 있습니까? 미리 감사드립니다.
with quarterResults as (
<subquery in here>
)
--COLUMN1: String
--COLUMN2: Date
--COLUMN3: Date
--COLUMN4: Double
select a.TIC, a.DATADATE, a.EFFDATE, SUM(b.valuei) OVER (ORDER BY a.TIC, a.DATADATE, a.EFFDATE ROWS 4 PRECEDING) AS [SUM]
from quarterResults a
cross join quarterResults b
where a.datadate > b.datadate
group by a.tic, a.datadate, a.EFFDATE, a.valuei
order by a.TIC, a.datadate
해결법
-
==============================
1.당신이 행에 대해 발견 된 문서는 / 범위는 SQL Server 2008 용 아니다 - 그것은 SQL Server의 이후 버전입니다.
당신이 행에 대해 발견 된 문서는 / 범위는 SQL Server 2008 용 아니다 - 그것은 SQL Server의 이후 버전입니다.
SQL 2008에서 쿼리를 수행하기 위해 하나의 접근 방식은 유사 할 것입니다 :
SELECT a.TIC, a.datadate, a.effdate, x.s FROM quarterResults a CROSS APPLY ( SELECT ISNULL(SUM(v), 0) FROM ( SELECT TOP(4) b.valuei FROM quarterResults b WHERE b.datadate < a.datadate ORDER BY b.datadate DESC ) x(v) ) x(s) ORDER BY a.TIC, a.datadate
이 잠재적으로 비싼 쿼리입니다 있습니다. 행 오버 표현의 사용은 아마 다시는 SQL 서버 2008에서 사용할 수 없습니다, 더 효율적일 수 있지만 것입니다.
-
==============================
2.당신은 2008 SQL 서버 태그.
당신은 2008 SQL 서버 태그.
구문은 데날리 일명 다음 버전 SQL 서버 2012까지 준비되어 있지 않습니다
from https://stackoverflow.com/questions/7652511/sql-server-2008-using-sum-overorder-by by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 역할을 설정할 때 SQLAlchemy의 변경 내용을 커밋하지 (0) | 2020.07.17 |
---|---|
[SQL] 순서 및 트리거와 오라클 자동 증가가 제대로 작동하지 않습니다 (0) | 2020.07.17 |
[SQL] 간단한 SELECT 문은 "키워드 근처의 구문" "근처에서 사용하는 구문", "ORA-00906", "구문 오류에서 또는 근처"또는 실패 (0) | 2020.07.17 |
[SQL] 인덱스 / 기본 키 순서에 대한 SQL 쿼리 (0) | 2020.07.17 |
[SQL] 어떻게 오라클 REGEXP_REPLACE에 의해 공간이 구분 된 목록에서 중복을 제거하는 방법? [복제] (0) | 2020.07.17 |