집 >데이터 베이스 >MySQL 튜토리얼 >집계 함수를 사용하지 않고 테이블을 피벗하려면 어떻게 해야 합니까?
데이터 처리 분야에서는 데이터를 사용자 친화적이거나 분석에 더 편리한 형식으로 재구성해야 하는 경우가 있습니다. 이를 달성하기 위한 가장 일반적인 기술 중 하나는 데이터가 더 넓은 레이아웃으로 변환되는 피벗입니다. 일반적으로 피벗팅에는 집계된 값이 포함되지만 집계 함수를 사용하지 않고도 수행할 수도 있습니다.
다음 표를 고려하세요.
<code class="language-sql">CREATE TABLE Data ( CustomerID int, DBColumnName varchar(50), Data varchar(50) ); INSERT INTO Data (CustomerID, DBColumnName, Data) VALUES (1, 'FirstName', 'Joe'), (1, 'MiddleName', 'S'), (1, 'LastName', 'Smith'), (1, 'Date', '12/12/2009'), (2, 'FirstName', 'Sam'), (2, 'MiddleName', 'S'), (2, 'LastName', 'Freddrick'), (2, 'Date', '1/12/2009'), (3, 'FirstName', 'Jaime'), (3, 'MiddleName', 'S'), (3, 'LastName', 'Carol'), (3, 'Date', '12/1/2009');</code>
이 테이블에는 여러 고객에 대한 데이터가 포함되어 있으며, 각 레코드는 특정 속성(FirstName, MiddleName, LastName, Date) 및 관련 값을 나타냅니다. 목표는 이 데이터를 보다 읽기 쉬운 형식으로 전환하는 것입니다.
<code class="language-sql">CREATE TABLE PivotedData ( CustomerID int, FirstName varchar(50), MiddleName varchar(50), LastName varchar(50), Date varchar(50) ); INSERT INTO PivotedData (CustomerID, FirstName, MiddleName, LastName, Date) VALUES (1, 'Joe', 'S', 'Smith', '12/12/2009'), (2, 'Sam', 'S', 'Freddrick', '1/12/2009'), (3, 'Jaime', 'S', 'Carol', '12/1/2009');</code>
이 변환은 데이터를 집계하지 않는다는 점에 유의하는 것이 중요합니다. 대신 각 고객의 각 속성에 대해 고유한 값을 유지합니다.
집계 함수를 사용하지 않고 이 변환을 수행하려면 그룹화된 SELECT 문에서 CASE 표현식을 사용할 수 있습니다.
<code class="language-sql">SELECT CustomerID, MIN(CASE DBColumnName WHEN 'FirstName' THEN Data END) AS FirstName, MIN(CASE DBColumnName WHEN 'MiddleName' THEN Data END) AS MiddleName, MIN(CASE DBColumnName WHEN 'LastName' THEN Data END) AS LastName, MIN(CASE DBColumnName WHEN 'Date' THEN Data END) AS Date FROM Data GROUP BY CustomerID;</code>
이 쿼리는 일련의 CASE 표현식을 사용하여 각 고객의 각 속성과 연관된 값을 조건부로 선택합니다. MIN() 함수는 지정된 조건을 충족하는 단일 값을 검색하는 데 사용되어 속성당 하나의 값만 포함되도록 합니다. CustomerID별로 결과를 그룹화하여 각 고객에 대한 해당 속성 및 값이 포함된 행을 생성합니다.
이 기술을 사용하면 집계 함수를 사용하지 않고도 데이터를 유연하게 피벗할 수 있습니다. 데이터 변환이 최소화되고 원래 값을 보존해야 하는 경우 특히 유용합니다.
위 내용은 집계 함수를 사용하지 않고 테이블을 피벗하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!