> 데이터 베이스 > MySQL 튜토리얼 > 연관을 유지하고 0 값을 처리하면서 고유 레코드에 대해 PIVOT 쿼리를 수행하려면 어떻게 해야 합니까?

연관을 유지하고 0 값을 처리하면서 고유 레코드에 대해 PIVOT 쿼리를 수행하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-12-24 06:49:14
원래의
430명이 탐색했습니다.

How Can I Perform a PIVOT Query on Distinct Records While Preserving Associations and Handling Zero Values?

보존 연관성이 있는 고유 레코드에 대한 PIVOT 쿼리

개인의 활동 및 비율이 포함된 데이터가 포함된 테이블이 있는 시나리오를 생각해 보세요. MAX 함수를 사용하는 표준 PIVOT 쿼리에서는 백분율 값이 0인 활동을 간과할 수 있습니다. 이 문제를 해결하기 위해 우리는 활동과 백분율 사이의 관계를 유지하는 솔루션을 도입합니다.

이를 달성하기 위해 우리는 ROW_NUMBER() 함수를 공통 테이블 표현식(CTE)에 통합하여 각 활동 내의 활동을 순차적으로 정렬합니다. 이름 그룹. 이 기술을 사용하면 PIVOT 쿼리가 여러 행에 걸쳐 활동과 백분율 간의 연관성을 유지할 수 있습니다.

수정된 쿼리의 예는 다음과 같습니다.

;with cte as 
(
    select *, ROW_NUMBER() over (partition by name order by percentage desc) ROWNUM
    from A
),
cte2 as
(
    SELECT Id,Code,ROWNUM,James,James_,Sam,Sam_,Lisa,Lisa_
    FROM cte
    PIVOT(MAX(activity)
          FOR name IN (James,Sam,Lisa)) AS PVTTable PIVOT
          (
          MAX(percentage)
          FOR name1 IN (James_,Sam_,Lisa_)) AS PVTTable1
)
select Id, Code, MAX(James) James, MAX(James_) James_, MAX(Sam) Sam, MAX(Sam_) Sam_, MAX(Lisa) Lisa, MAX(Lisa_) Lisa_
from cte2
group by Id, Code, ROWNUM
로그인 후 복사

CTE, cte는 ROWNUM을 추가합니다. 열을 초기 테이블에 추가하고 각 이름에 대한 활동을 백분율 내림차순으로 정렬합니다. 이러한 순서를 사용하면 후속 PIVOT 쿼리가 데이터를 올바르게 그룹화하고 집계할 수 있습니다.

쿼리의 출력은 예상 결과와 유사하며, 여기서 고유한 활동은 해당 이름 및 비율과 연결됩니다.

Id  Code        James       James_  Sam         Sam_    Lisa    Lisa_
1   Prashant    Running     43.43   Cooking 1   73      Walking 90.34
1   Prashant    Stealing    0.00    Cooking     3.43    NULL    NULL
1   Prashant    Lacking     0.00    NULL        NULL    NULL    NULL
로그인 후 복사

이 기술을 사용하면 백분율 값이 0인 레코드에 대해서도 활동과 백분율 간의 연관성을 유지하면서 완전하고 정확한 PIVOT 결과를 얻을 수 있습니다.

위 내용은 연관을 유지하고 0 값을 처리하면서 고유 레코드에 대해 PIVOT 쿼리를 수행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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