MySQL에서 누적 합계 열을 생성하려면 변수를 생성하고 값을 0으로 설정해야 합니다. 누적 합계는 현재 값으로 다음 값을 단계적으로 증가시킵니다.
먼저 SET를 사용하여 변수를 생성해야 합니다. 구문은 다음과 같습니다 -
set @anyVariableName:= 0;
MySQL에서 누적 합계 열을 생성하는 구문은 다음과 같습니다 -
select yourColumnName1,yourColumnName2,........N,(@anyVariableName := @anyVariableName + yourColumnName2) as anyVariableName from yourTableName order by yourColumnName1;
위의 개념을 이해하기 위해 테이블을 만들어 보겠습니다. 다음은 테이블을 생성하는 쿼리입니다 -
mysql> create table CumulativeSumDemo −> ( −> BookId int, −> BookPrice int −> ); Query OK, 0 rows affected (0.67 sec)
select 문을 사용하여 테이블에 일부 레코드를 삽입하십시오. 레코드를 삽입하는 쿼리는 다음과 같습니다 -
mysql> insert into CumulativeSumDemo values(101,400); Query OK, 1 row affected (0.15 sec) mysql> insert into CumulativeSumDemo values(102,500); Query OK, 1 row affected (0.16 sec) mysql> insert into CumulativeSumDemo values(103,600); Query OK, 1 row affected (0.16 sec) mysql> insert into CumulativeSumDemo values(104,1000); Query OK, 1 row affected (0.18 sec)
삽입 명령을 사용하여 삽입한 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -
mysql> select *from CumulativeSumDemo;
다음은 출력입니다 -
+--------+-----------+ | BookId | BookPrice | +--------+-----------+ | 101 | 400 | | 102 | 500 | | 103 | 600 | | 104 | 1000 | +--------+-----------+ 4 rows in set (0.00 sec)
누적 합계 열을 추가하려면 먼저 변수를 생성해야 합니다. 쿼리는 다음과 같습니다 -
mysql> set @CumulativeSum := 0; Query OK, 0 rows affected (0.00 sec)
누적 합계 열을 추가하려면 처음에 설명한 위의 구문을 구현하십시오. 쿼리는 다음과 같습니다 -
mysql> select BookId,BookPrice,(@CumulativeSum := @CumulativeSum + BookPrice) as CumSum −> from CumulativeSumDemo order by BookId;
다음은 출력입니다. 여기에 누적 합계 열도 표시됩니다 -
+--------+-----------+--------+ | BookId | BookPrice | CumSum | +--------+-----------+--------+ | 101 | 400 | 400 | | 102 | 500 | 900 | | 103 | 600 | 1500 | | 104 | 1000 | 2500 | +--------+-----------+--------+ 4 rows in set (0.00 sec)