DB2에서 피벗
이 질문은 DB2 테이블의 행을 열로 바꾸는 것과 관련이 있습니다. 제공된 데이터는 ItemID, Item 및 Value 열로 구성됩니다. 목표는 이 데이터를 전치된 형식으로 변환하는 것입니다. 즉, Meeting, Advise 및 NoAdvise 값이 열로 정렬되고 ItemID가 행 식별자 역할을 합니다.
이 피벗을 실행하는 한 가지 접근 방식은 다음과 같습니다. 여러 MAX() 표현식과 함께 GROUP BY 절을 활용합니다. MAX()를 사용하고 CASE 문 내에서 각 항목 유형에 대한 기준을 지정하면 해당 값을 검색할 수 있습니다. 예:
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 table_name GROUP BY ItemID
이 쿼리는 ItemID가 기본 키 역할을 하고 Meeting, Advise 및 NoAdvise가 열 헤더가 되는 원하는 전치 형식을 생성합니다. GROUP BY 절은 데이터가 ItemID별로 그룹화되어 각 항목에 대해 고유한 행을 제공하도록 보장합니다.
또는 이 포럼에서 현재 허용되는 답변에서 제안한 대로 여러 상관 하위 쿼리를 활용하여 동일한 결과를 얻을 수 있습니다. . 그러나 특히 대규모 데이터 세트의 경우 하위 쿼리 접근 방식이 보다 효율적인 GROUP BY 솔루션에 비해 성능 문제에 직면할 수 있다는 점은 주목할 만합니다.
위 내용은 GROUP BY를 사용하여 DB2에서 행을 열로 피벗하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!