> 데이터 베이스 > MySQL 튜토리얼 > 행 기반 데이터를 열 기반 형식으로 변환하기 위해 SQL Server 2000에서 데이터를 어떻게 피벗할 수 있습니까?

행 기반 데이터를 열 기반 형식으로 변환하기 위해 SQL Server 2000에서 데이터를 어떻게 피벗할 수 있습니까?

Barbara Streisand
풀어 주다: 2024-12-31 18:41:11
원래의
704명이 탐색했습니다.

How Can I Pivot Data in SQL Server 2000 to Transform Row-Based Data into a Column-Based Format?

SQL Server 2000의 데이터 피벗: 자세한 설명

SQL Server 2000은 사용자가 데이터를 변환할 수 있는 피버팅이라는 강력한 기능을 제공합니다. 행 기반 형식을 열 기반 형식으로 변경합니다. 이는 여러 열에 걸쳐 데이터를 요약하거나 데이터의 매트릭스 보기를 생성해야 하는 시나리오에 유용할 수 있습니다.

문제 설명:

특정 사례에서 사용자에게 두 개의 테이블이 있습니다:

  • 제품: 다음과 같은 기본 제품 정보가 포함되어 있습니다. ProductId 및 Name.
  • 제품 메타: MetaKey 및 MetaValue와 같은 열을 사용하여 제품 메타데이터를 저장합니다.

사용자에게는 MetaValue 열을 피벗하는 결과 집합이 필요합니다. Products 테이블의 ProductId 및 Name 열을 행으로 사용하여 MetaKey 열을 기반으로 하는 Product Meta 테이블에서 headers.

최적 솔루션:

이 변환을 달성하려면 다음 SQL 쿼리를 사용할 수 있습니다.

SELECT P.ProductId, P.Name
    , MIN(CASE WHEN PM.MetaKey = 'A' THEN PM.MetaValue END) AS A
    , MIN(CASE WHEN PM.MetaKey = 'B' THEN PM.MetaValue END) AS B
    , MIN(CASE WHEN PM.MetaKey = 'C' THEN PM.MetaValue END) AS C
FROM Products AS P
JOIN ProductMeta AS PM
    ON PM.ProductId = P.ProductId
GROUP BY P.ProductId, P.Name
로그인 후 복사

설명:

  • SELECT 절은 열을 지정합니다. 결과 집합에 포함됩니다.
  • MIN() 집계 함수는 ProductId 및 Name의 각 그룹 내에서 각 MetaKey에 대한 최소값을 반환하는 데 사용됩니다.
  • CASE 표현식은 어떤 항목을 결정하는 데 사용됩니다. MetaKey 값을 기반으로 채울 열(A, B 또는 C).
  • GROUP BY 절은 결과의 행을 정의하는 열을 지정합니다. set.

참고:

이 시나리오에서는 행이 올바르게 그룹화되도록 하려면 GROUP BY 절을 사용하는 것이 필수적입니다. GROUP BY 절을 사용하지 않으면 시차가 있는 결과가 발생합니다. 또한 GROUP BY 절에 포함되지 않은 각 열은 집계 함수(이 경우 MIN())로 래핑되어야 합니다.

위 내용은 행 기반 데이터를 열 기반 형식으로 변환하기 위해 SQL Server 2000에서 데이터를 어떻게 피벗할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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