>데이터 베이스 >MySQL 튜토리얼 >DB2에서 행을 열로 바꾸는 방법은 무엇입니까?

DB2에서 행을 열로 바꾸는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-30 15:39:18631검색

How to Transpose Rows into Columns in DB2?

DB2에서 행을 열로 전치

데이터베이스에서 데이터 작업을 할 때 행을 전치해야 할 수도 있습니다. 즉, 행과 열을 뒤집는 것입니다. 이는 데이터 분석, 보고 및 기타 목적에 유용할 수 있습니다.

열로 바꾸려는 행이 있는 DB2 테이블이 있는 경우 사용할 수 있는 몇 가지 방법이 있습니다. 한 가지 접근 방식은 소규모 데이터 세트에 효율적일 수 있는 상관 하위 쿼리를 사용하는 것입니다.

SELECT 
  A.ItemID,
  MAX(CASE WHEN A.Item = 'Meeting'  THEN Value END) AS Meeting,
  MAX(CASE WHEN A.Item = 'Advise'   THEN Value END) AS Advise,
  MAX(CASE WHEN A.Item = 'NoAdvise' THEN Value END) AS NoAdvise
FROM A
GROUP BY A.ItemID

이 쿼리는 상관 하위 쿼리를 사용하여 각 행의 각 항목에 대한 최대값을 찾습니다. MAX() 함수는 값을 집계하는 데 사용되며 CASE 문은 어느 열에 값을 할당할지 결정하는 데 사용됩니다.

행을 열로 바꾸는 또 다른 방법은 집계와 피벗을 조합하는 것입니다. 기능. 이 접근 방식은 단일 SQL 문을 사용하여 전치를 수행하므로 대규모 데이터세트에 더 효율적일 수 있습니다.

SELECT ItemID,
       MAX(CASE WHEN Item = 'Meeting'  THEN Value END) AS Meeting,
       MAX(CASE WHEN Item = 'Advise'   THEN Value END) AS Advise,
       MAX(CASE WHEN Item = 'NoAdvise' THEN Value END) AS NoAdvise
FROM (
    SELECT ItemID, Item, Value
    FROM TableName
) AS t
GROUP BY ItemID
PIVOT (MAX(Value) FOR Item IN ('Meeting', 'Advise', 'NoAdvise'))

이 쿼리는 PIVOT() 함수를 사용하여 데이터를 전치합니다. PIVOT() 함수는 피벗할 열(이 경우 Item)과 새 열에 포함할 값 목록(이 경우 Meeting, Advise 및 NoAdvise)이라는 두 가지 인수를 사용합니다.

위 내용은 DB2에서 행을 열로 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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