>데이터 베이스 >MySQL 튜토리얼 >SQL을 사용하여 여러 열(조직 및 위치)이 있는 데이터를 더 넓은 형식으로 피벗하는 방법은 무엇입니까?

SQL을 사용하여 여러 열(조직 및 위치)이 있는 데이터를 더 넓은 형식으로 피벗하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-03 00:53:41613검색

How to Pivot Data with Multiple Columns (org and position) into a Wider Format Using SQL?

여러 열을 사용하여 데이터 피벗

길고 좁은 형식의 데이터를 넓은 테이블 형식으로 재배열하려면 피벗 쿼리가 필수적입니다. 이 특별한 경우에는 org와 position이라는 두 개의 열이 있는 피벗 형식으로 표시된 데이터를 각 언어(en, fi, sv)에 대한 별도의 열이 있는 더 넓은 형식으로 피벗해야 합니다.

As 말씀하신 것처럼 CONNECT BY 명령을 사용한 피벗 쿼리가 유용할 수 있습니다. 그러나 PIVOT 연산자를 사용하는 더 간단한 접근 방식은 다음과 같습니다.

SELECT  user_id,
        MAX(CASE WHEN lang = 'en' THEN org END) AS org_en,
        MAX(CASE WHEN lang = 'en' THEN position END) AS position_en,
        MAX(CASE WHEN lang = 'fi' THEN org END) AS org_fi,
        MAX(CASE WHEN lang = 'fi' THEN position END) AS position_fi,
        MAX(CASE WHEN lang = 'sv' THEN org END) AS org_sv,
        MAX(CASE WHEN lang = 'sv' THEN position END) AS position_sv
FROM    source
GROUP BY user_id

MAX() 함수는 각 사용자 ID 및 언어 조합과 관련된 최신 값을 검색하는 데 사용됩니다. 또는 특정 요구 사항에 따라 SUM()과 같은 집계 함수를 사용할 수 있습니다.

이 쿼리는 원하는 출력을 생성합니다.

user_id org_fi position_fi org_en position_en org_sv position_sv
1001 USD Bossa USE Boss NULL NULL
1002 NULL NULL NULL NULL GWR Dim
1003 GGA DCS NULL NULL GCA DDD

MAX() 함수를 조정해야 합니다. 실제 데이터와 요구 사항을 기반으로 한 CASE 표현식입니다. 이 접근 방식을 사용하면 여러 열을 사용하여 데이터를 효과적으로 회전할 수 있으므로 분석 및 프레젠테이션 요구 사항에 더 적합한 형식으로 데이터를 표현할 수 있는 유연성이 제공됩니다.

위 내용은 SQL을 사용하여 여러 열(조직 및 위치)이 있는 데이터를 더 넓은 형식으로 피벗하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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