lierre

mysql pivot 예제

편리한 그래픽 환경에서 데이터 피벗을 구현할 수 있는 도구가 있는...

02 Août

편리한 그래픽 환경에서 데이터 피벗을 구현할 수 있는 도구가 있는 응용 프로그램이 있습니다. 예를 들어, mySQL용 dbForge Studio에는 몇 단계만으로 원하는 결과를 제공하는 피벗 테이블 기능이 포함되어 있습니다. MySQL은 피벗 쿼리를 만드는 기본 제공 방법을 제공하지 않습니다. 그러나 준비된 문을 사용하여 만들 수 있습니다. 이 문서에서는 행에서 열로 테이블 데이터의 변환을 다룹니다. 이러한 변환을 피벗 테이블이라고 합니다. 피벗의 결과는 보고서에 적합하거나 필요한 형식으로 통계 데이터가 표시되는 요약 테이블인 경우가 많습니다. 게다가 이러한 데이터 변환은 데이터베이스가 정규화되지 않고 정보가 최적이 아닌 형태로 저장되는 경우에 유용할 수 있습니다. 따라서 데이터베이스를 재구성하고 데이터를 새 테이블로 전송하거나 필요한 데이터 표현을 생성할 때 데이터 피벗이 유용할 수 있습니다( 예: 행에서 결과 열로 값 이동).

다음은 제품의 이전 테이블의 예입니다 – 제품이전 및 새로운 하나 – 제품새로운. 행에서 열로의 변환을 통해 이러한 결과를 쉽게 얻을 수 있습니다. 위의 피벗 테이블은 하나의 선택 문으로 만들어졌습니다. 다음 예제에서는 가져온 MySQL 테이블에서 빈 피벗 테이블이 만들어지는 간단한 사용 사례를 보여 주며 있습니다. 이 예제에서는 사킬라 데이터베이스의 필름 테이블을 사용합니다. 피벗 테이블을 만들려면 작업 창에서 필름 테이블을 선택한 다음 MySQL 데이터 가져오기를 클릭합니다. 데이터 가져오기 대화 상자에서 피벗 테이블 만들기 확인란을 선택하고 확인을 클릭하여 작업을 실행합니다. Oracle 버전 10g과 함께 도입된 독점 모델 절을 사용하여 피벗 문제(설명서)를 해결할 수도 있습니다. 쿼리는 결과를 행당 하나의 값인 순수수직 형식으로 반환합니다.

종종 데이터는 다른 형태로 필요합니다: 예를 들어, 연간 하나의 행과 매월 별도의 열. 즉, 연도행을 열로 바꿔야 합니다. 구매 주문 헤더 – 주문의 단순화 된 테이블과 예제를 살펴 보자. SQL Server는 버전 2005(설명서) 이후 피벗 및 피벗 해제 절을 지원합니다. 버전 11g(설명서) 이후 Oracle 데이터베이스에서도 사용할 수 있습니다. SQL은 정적 형식의 언어입니다. 알 수 없거나 동적 특성이 있는 테이블을 피벗하려면 다중 집합 또는 문서 유형(XML, JSON)을 사용하여 단일 열에서 키 값 저장소를 나타낼 수 있습니다. listagg: 문서 형식에 대한 적합성 대안을 참조하십시오. EAV 모델은 단점없이 오지 않는다 : 예를 들어, 데이터 유효성 검사에 제약 조건을 사용하는 것은 거의 불가능하다. 그러나 EAV 모델에서 가장 당혹스러운 문제는 특성당 하나의 열 표기법으로 변환하는 것이 거의 항상 조인(특성당 하나의 외부 조인)을 사용하여 수행된다는 것입니다. 이것은 번거로울 뿐만 아니라 성능이 매우 저하되어 진정한 안티 패턴이 됩니다. 예를 들어 SqlServer와 오라클에는 이러한 데이터 변환을 허용하는 PIVOT 연산자가 있습니다.

SqlServer로 작업한 경우 쿼리는 다음과 같습니다. PostgreSQL 데이터베이스는 데이터 피벗(설명서)에 대한 일련의 크로스탭 테이블 함수와 함께 제공됩니다. « 교차 표 »에 대한 좋은 기사 또는 통계를 표시하기 위해 데이터를 정규화 해제: http://dev.mysql.com/tech-resources/articles/wizard/print_version.html 다음 그림은 이전에서 가져온 sakila.film 테이블을 사용하여 피벗 테이블 보고서를 보여줍니다. 예제. 이 보고서에는 release_year별 필터가 포함되어 있으며 rental_rate 값을 요약하는 동시에 평가 열의 값별로 데이터를 그룹화합니다. ADOdb(PHP)는 피벗테이블SQL()을 사용하여 피벗 테이블을 생성할 수 있습니다. 쿼리를 더 문해하도록 하기 위해 추출 식을 중앙 위치로 이동할 수 있습니다. 다른 쿼리가 이 식을 다시 사용할 수 있도록 생성된 열 또는 보기일 수 있습니다.

이 예제에서는 with 절을 사용하거나 인라인 보기로 쿼리 내에서 추출 식을 중앙 집중화하는 것으로 충분합니다.