>  기사  >  데이터 베이스  >  mysql에서 행-열 변환을 구현하는 방법

mysql에서 행-열 변환을 구현하는 방법

PHPz
PHPz원래의
2023-04-17 16:45:033145검색

MySQL은 인기 있는 관계형 데이터베이스 관리 시스템입니다. 강력한 행-열 변환 기능을 제공하여 사용자가 보다 편리하게 데이터를 조작할 수 있도록 해줍니다. 행-열 변환이란 무엇입니까? 행-열 변환은 테이블의 행 데이터를 열 데이터로 변환하거나, 열 데이터를 행 데이터로 변환하는 것을 의미합니다. 이 글에서는 MySQL의 행-열 변환 기능을 사용하는 방법을 소개합니다.

  1. 행 데이터를 열 데이터로 변환

MySQL에서는 PIVOT 및 UNPIVOT 함수를 사용하여 테이블의 행 데이터를 열 데이터로 변환할 수 있습니다. PIVOT 함수는 테이블의 행 데이터를 열 데이터로 변환하고, UNPIVOT 함수는 테이블의 열 데이터를 행 데이터로 변환합니다.

다음은 예입니다. 학생의 이름, 과목, 성적을 포함하는 학생 테이블이 있다고 가정합니다.

학생 이름 과목 Achievements
Xiao Ming 수학 90
Xiao Ming 영어 8 0
小红 수학 95
小红 English 85

PIVOT 함수를 사용하여 학생의 점수를 다음 형식으로 변환할 수 있습니다.

학생 이름 수학 점수 영어 점수
Xiao Ming 90 80
小红 95 85

은 다음 코드로 구현됩니다.

SELECT
  学生姓名,
  MAX(CASE WHEN 科目 = '数学' THEN 成绩 ELSE NULL END) AS 数学成绩,
  MAX(CASE WHEN 科目 = '英语' THEN 成绩 ELSE NULL END) AS 英语成绩
FROM students
GROUP BY 学生姓名;

그 중 MAX 함수를 사용하는데요 최대 점수 값을 얻습니다. 조건이 true가 아닌 경우 NULL을 반환합니다.

  1. 열 데이터를 행 데이터로 변환

PIVOT 함수에 해당하는 것이 UNPIVOT 함수로, 테이블의 열 데이터를 행 데이터로 변환하는 데 사용됩니다. 아래는 예시입니다. 매월 각 영업사원의 판매 기록을 포함하는 판매 테이블이 있다고 가정합니다.

판매원 1월 판매 2월 판매 3월 판매
샤오밍 10000 20000 15 000
小红 12000 18000 11000

UNPIVOT 함수를 사용하여 판매 기록을 다음 형식으로 변환할 수 있습니다.

Salesperson Month Sales
Xiao Ming Janu 아리 10000
샤오밍 2월 20000
샤오밍 3월 15000
Xiaohong 1월 12000
작은红 2월 18000
작은红 March 11000

은 다음 코드로 구현됩니다.

SELECT
  销售员,
  MONTH,
  销售额
FROM sales
UNPIVOT(
  销售额 FOR MONTH IN ([1月], [2月], [3月])
) AS unpvt;

그 중 UNPIVOT 함수의 FOR 절을 사용하여 변환할 열을 지정합니다. 이 예에서는 변환할 열을 [1월], [2월], [3월]로 지정합니다.

요약

열 및 열 변환은 특히 보고서 및 비즈니스 데이터 분석과 관련된 시나리오에서 매우 실용적인 기능입니다. MySQL은 사용자가 보다 편리하게 데이터를 변환할 수 있도록 PIVOT 및 UNPIVOT 기능을 제공합니다. 이 두 가지 기능을 능숙하게 사용할 수 있으면 데이터베이스 작업이 매우 편리해집니다.

위 내용은 mysql에서 행-열 변환을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.