> 데이터 베이스 > MySQL 튜토리얼 > SQLite에서 긴 형식에서 넓은 형식으로 데이터를 전환하는 방법은 무엇입니까?

SQLite에서 긴 형식에서 넓은 형식으로 데이터를 전환하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2025-01-10 12:51:46
원래의
480명이 탐색했습니다.

How to Pivot Data from Long to Wide Format in SQLite?

SQLite 데이터베이스 피벗: 긴 형식의 데이터를 넓은 형식의 데이터로 변환

데이터베이스 관리에서 피벗은 데이터를 긴 형식(각 행이 여러 속성을 가진 단일 관찰을 나타냄)에서 넓은 형식(각 행이 다른 속성을 나타내고 열이 해당 값을 나타냄)으로 변환하는 방법입니다. 속성) ) 기술. 이 절차는 아래 표시된 대로 긴 형식으로 데이터를 저장하는 테이블로 작업할 때 특히 유용합니다.

<code>## studid ## ## subjectid ##  ## marks ##
A1            3                50
A1            4                60
A1            5                70
B1            3                60
B1            4                80
C1            5                95</code>
로그인 후 복사

질문:

목표는 위의 표를 각 학생의 이름과 과목별 점수를 나타내는 행이 있는 넓은 형식으로 변환하는 것입니다. 원하는 출력은 다음과 같아야 합니다.

<code>## studid ## ## name## ## subjectid_3 ## ## subjectid_4 ## ## subjectid_5 ##
A1        Raam        50                60                 70
B1        Vivek       60                80                NULL
C1        Alex       NULL              NULL                95</code>
로그인 후 복사

CASE 문과 GROUP BY 절을 사용한 솔루션:

SQLite에서 이를 달성하는 한 가지 방법은 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>
로그인 후 복사

왼쪽 외부 조인을 사용한 솔루션:

또 다른 접근 방식은 왼쪽 외부 조인을 사용하여 각 과목의 학생 정보와 점수를 결합하는 것입니다.

<code class="language-sql">SELECT
    u.stuid,
    u.name,
    s3.marks AS subjectid_3,
    s4.marks AS subjectid_4,
    s5.marks AS subjectid_5
FROM
    student_info u
LEFT OUTER JOIN markdetails s3 ON
    u.stuid = s3.stuid
    AND s3.subjectid = 3
LEFT OUTER JOIN markdetails s4 ON
    u.stuid = s4.stuid
    AND s4.subjectid = 4
LEFT OUTER JOIN markdetails s5 ON
    u.stuid = s5.stuid
    AND s5.subjectid = 5;</code>
로그인 후 복사

두 SQL 쿼리 모두 필요한 와이드 형식 테이블을 생성하므로 데이터를 더 쉽게 분석하고 시각화할 수 있습니다.

위 내용은 SQLite에서 긴 형식에서 넓은 형식으로 데이터를 전환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿