Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 두 열을 곱한 결과를 선택하고 합산하는 방법

MySQL에서는 SUM() 집계 함수를 사용하여 두 열을 곱한 값들의 합계를 손쉽게 구할 수 있습니다. 예를 들어, 상품별로 '수량 × 가격'을 계산한 뒤 상품 이름별로 그룹화하여 총 금액을 구하는 경우에 유용합니다.

1. 샘플 테이블 생성

먼저 실습용 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
    (
    CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    CustomerProductName varchar(100),
    CustomerProductQuantity int,
    CustomerPrice int
    );
Query OK, 0 rows affected (0.17 sec)

테이블 구성은 다음과 같습니다.

  • CustomerId: 고객 ID (자동 증가 기본키)
  • CustomerProductName: 상품 이름
  • CustomerProductQuantity: 주문 수량
  • CustomerPrice: 상품 단가

2. 데이터 삽입

INSERT 문을 사용해 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable(CustomerProductName,CustomerProductQuantity,CustomerPrice) values('Product-1',5,400);
Query OK, 1 row affected (0.10 sec)

mysql> insert into DemoTable(CustomerProductName,CustomerProductQuantity,CustomerPrice) values('Product-2',3,100);
Query OK, 1 row affected (0.06 sec)

mysql> insert into DemoTable(CustomerProductName,CustomerProductQuantity,CustomerPrice) values('Product-1',2,300);
Query OK, 1 row affected (0.06 sec)

mysql> insert into DemoTable(CustomerProductName,CustomerProductQuantity,CustomerPrice) values('Product-1',5,50);
Query OK, 1 row affected (0.08 sec)

mysql> insert into DemoTable(CustomerProductName,CustomerProductQuantity,CustomerPrice) values('Product-3',6,10);
Query OK, 1 row affected (0.06 sec)

mysql> insert into DemoTable(CustomerProductName,CustomerProductQuantity,CustomerPrice) values('Product-2',10,20);
Query OK, 1 row affected (0.03 sec)

3. 전체 데이터 조회

SELECT 문으로 테이블의 모든 레코드를 확인해 보겠습니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+------------+---------------------+-------------------------+---------------+
| CustomerId | CustomerProductName | CustomerProductQuantity | CustomerPrice |
+------------+---------------------+-------------------------+---------------+
| 1 | Product-1 | 5 | 400 |
| 2 | Product-2 | 3 | 100 |
| 3 | Product-1 | 2 | 300 |
| 4 | Product-1 | 5 | 50 |
| 5 | Product-3 | 6 | 10 |
| 6 | Product-2 | 10 | 20 |
+------------+---------------------+-------------------------+---------------+
6 rows in set (0.00 sec)

4. 두 열의 곱셈 결과를 합산하는 쿼리

다음은 CustomerProductQuantity × CustomerPrice(수량 × 단가)의 곱셈 결과를 계산한 후, 상품 이름별로 그룹화하여 합산하는 쿼리입니다.

mysql> select CustomerProductName,
SUM(CustomerProductQuantity*CustomerPrice) AS TOTAL_PRICE
from DemoTable
group by CustomerProductName;

실행 결과는 다음과 같습니다.

+---------------------+-------------+
| CustomerProductName | TOTAL_PRICE |
+---------------------+-------------+
| Product-1 | 2850 |
| Product-2 | 500 |
| Product-3 | 60 |
+---------------------+-------------+
3 rows in set (0.00 sec)

결과 해석

위 결과를 살펴보면 다음과 같습니다.

  • Product-1: (5×400) + (2×300) + (5×50) = 2000 + 600 + 250 = 2850
  • Product-2: (3×100) + (10×20) = 300 + 200 = 500
  • Product-3: (6×10) = 60

이처럼 SUM() 함수 안에서 산술 연산식을 직접 작성하면, 각 행의 두 열 값을 곱한 결과를 한 번에 집계할 수 있습니다. GROUP BY 절과 함께 사용하면 특정 기준(여기서는 상품 이름)별 소계를 구하는 데 매우 유용하며, 이는 주문 관리, 매출 집계 등 실무에서 자주 활용되는 패턴입니다.