일반적으로 "행을 열로 변환" 또는 "피벗"이라고 불립니다. MySQL은 기본적으로 피벗 연산을 위한 내장 기능을 제공하지 않기 때문에, 이를 수행하려면 조건부 집계를 사용해야 합니다.
테이블 구조:
CREATE TABLE sales (
year INT,
month INT,
amount INT
);
INSERT INTO sales VALUES
(2021, 1, 100),
(2021, 2, 150),
(2021, 3, 200);
위 테이블에서 각 월의 판매량을 열로 표시하려면 아래 쿼리를 사용합니다:
SELECT
year,
SUM(CASE WHEN month = 1 THEN amount ELSE 0 END) AS Jan,
SUM(CASE WHEN month = 2 THEN amount ELSE 0 END) AS Feb,
SUM(CASE WHEN month = 3 THEN amount ELSE 0 END) AS Mar
-- 추가 월은 이러한 방식으로 계속 확장
FROM sales
GROUP BY year;
위 쿼리는 각 월에 대해 CASE
문을 사용하여 해당 월의 판매량을 선택하고, 그 외의 월은 0으로 처리합니다. 그런 다음 SUM
함수를 사용하여 해당 월의 총액을 계산합니다.
이러한 방식으로 원하는 열 수만큼 확장할 수 있습니다.
반응형
'데이터베이스 > MySQL, MariaDB' 카테고리의 다른 글
MySQL 재귀 쿼리를 활용한 부모 상하 관계 표현하기 (0) | 2023.08.08 |
---|