[SQL] SQL 서버 그룹에 의해 누적 합계
SQLSQL 서버 그룹에 의해 누적 합계
나는이 형식의 테이블 (2005 SQL 서버)가 :
dummy_id, date_registered, ITEM_ID, 수량, 가격
난 같이 date_registered 각 ITEM_ID 순서의 누적 합계를 계산하는 새로운 열 (누적)을 추가 할 :
dummy_id date_registered item_id quantity price cumulative
1 2013-07-01 100 10 34.5 10
2 2013-07-01 145 8 2.3 8
3 2013-07-11 100 20 34.5 30
4 2013-07-23 100 15 34.5 45
5 2013-07-24 145 10 34.5 18
미리 감사드립니다
해결법
-
==============================
1.SQL Server 2005에서 나는 상관 하위 쿼리를 사용하여이 작업을 수행 할 것입니다 :
SQL Server 2005에서 나는 상관 하위 쿼리를 사용하여이 작업을 수행 할 것입니다 :
select dummy_id, date_registered, item_id, quantity, price, (select sum(quantity) from t t2 where t2.item_id = t.item_id and t2.date_registered <= t.date_registered ) as cumulative from table t;
당신이 실제로 테이블에이를 추가하려는 경우, 당신은 열을 추가 할 수있는 테이블을 변경해야 다음 업데이 트를 않습니다. 테이블 삽입 및 업데이트가있는 경우, 당신은 그것을 최신 유지하는 트리거를 추가해야합니다. 쿼리를 통해 얻는 것은 확실히 쉽다.
SQL 서버 2012에서는 구문을 사용하여이 작업을 수행 할 수 있습니다
select dummy_id, date_registered, item_id, quantity, price, sum(quantity) over (partition by item_id order by date_registered) as cumulative from table t;
from https://stackoverflow.com/questions/17971988/sql-server-cumulative-sum-by-group by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] EXISTS보다 내부가 제공하는 더 나은 성능을 가입 할 수 있습니다 (0) | 2020.05.23 |
---|---|
[SQL] MySQL은 : 0에 NULL를 타입 캐스팅 (0) | 2020.05.23 |
[SQL] 어떻게 내 SQL 데이터베이스에 많은 관계로 하나를 저장? (MySQL의) (0) | 2020.05.23 |
[SQL] MySQL은 사용자 로그인을 못하게 : 오류 1524 (0) | 2020.05.23 |
[SQL] SET 필드에서 값을 제거하는 가장 좋은 방법은? (0) | 2020.05.22 |