Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 누적 합계 열을 만드는 방법은 무엇입니까?

<시간/>

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)