집 >데이터 베이스 >MySQL 튜토리얼 >CASE 및 GROUP BY를 사용하여 SQLite에서 긴 형식의 데이터를 넓은 형식으로 전환하는 방법은 무엇입니까?
SQLite를 사용하여 표 형식 데이터를 긴 형식에서 넓은 형식으로 변환
데이터 분석에서는 긴 형식(각 행은 하나의 레코드를 나타내고 여러 열은 서로 다른 값을 나타냄)에서 넓은 형식(각 레코드가 여러 열을 차지함)으로 데이터를 변환해야 하는 경우가 많습니다. 이 작업을 피벗팅이라고 합니다.
다음 구조를 가진 markdetails
이라는 테이블이 있습니다.
studid
subjectid
marks
A1 3 50
A1 4 60
A1 5 70
지하 1층 3층 60
지하 1층 4층 80
C1 5 95
다음 구조를 가진 student_info
이라는 테이블도 있습니다.
studid
name
<code> A1 Raam B1 Vivek c1 Alex</code>
우리는 이 데이터를 다음과 같은 와이드 형식으로 전환하려고 합니다.
studid
name
subjectid_3
subjectid_4
subjectid_5
<code> A1 Raam 50 60 70 B1 Vivek 60 80 NULL c1 Alex NULL NULL 95</code>
이를 수행하는 한 가지 방법은 CASE
과 함께 GROUP BY
문을 사용하는 것입니다. 다음 쿼리는 필요한 와이드 형식을 반환합니다.
<code class="language-sql">SELECT si.studid, si.name, SUM(CASE WHEN md.subjectid = 3 THEN md.marks END) AS subjectid_3, SUM(CASE WHEN md.subjectid = 4 THEN md.marks END) AS subjectid_4, SUM(CASE WHEN md.subjectid = 5 THEN md.marks END) AS subjectid_5 FROM student_info si JOIN markdetails md ON md.studid = si.studid GROUP BY si.studid, si.name;</code>
위 내용은 CASE 및 GROUP BY를 사용하여 SQLite에서 긴 형식의 데이터를 넓은 형식으로 전환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!