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

CASE 및 GROUP BY를 사용하여 SQLite에서 긴 형식의 데이터를 넓은 형식으로 전환하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-10 13:01:46
원래의
847명이 탐색했습니다.

How to Pivot Long to Wide Format Data in SQLite Using CASE and GROUP BY?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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