MySQL - 행을 열로 변환
P粉538462187
P粉538462187 2023-10-13 11:50:31
0
1
502

게시물 검색을 시도했지만 SQL Server/Access에 대한 솔루션만 찾았습니다. MySQL(5.X)에 솔루션이 필요합니다.

hostid, itemname, itemvalue라는 3개의 열이 있는 테이블(기록이라고 함)이 있습니다.

선택(select * from History)을 수행하면

이 반환됩니다. 으아악

유사한 콘텐츠를 반환하기 위해 데이터베이스를 쿼리하는 방법

으아악


P粉538462187
P粉538462187

모든 응답 (1)
P粉920199761

이 문제를 해결하기 위한 단계에 대해 더 길고 자세한 설명을 추가하겠습니다. 너무 길었다면 사과드립니다.


귀하가 제공한 기초부터 시작하여 이를 사용하여 이 기사의 나머지 부분에서 사용할 몇 가지 용어를 정의하겠습니다. 이것이기본 테이블이 됩니다:

으아아아

이것이 우리의 목표가 될 것입니다.멋진 피벗 테이블:

으아아아

history.hostid열의 값은 피벗 테이블의history.hostid列中的值将成为数据透视表中的y 值history.itemnamey 값이 됩니다.history.itemname열의 값은x-values

가 됩니다(명백한 이유로).

피벗 테이블 생성 문제를 해결해야 할 때는 3단계 프로세스(선택 사항인 네 번째 단계 포함)를 사용하여 문제를 해결합니다.
  1. 관심 있는 열, 즉y 값x 값
  2. 을 선택합니다.추가 열로 기본 테이블 확장 - 각x 값
  3. 에 대해 하나의 열확장 테이블 그룹화 및 집계 -y 값당
  4. 한 세트
  5. (선택사항) 집계표를 아름답게 꾸미기

다음 단계를 문제에 적용하고 결과를 살펴보겠습니다.

1단계: 관심 있는 열을 선택하세요hostid提供y 值itemname. 원하는 결과에서hostidy 값을 제공하고

x 값을 제공합니다.itemname

2단계: 추가 열을 사용하여 기본 테이블을 확장합니다

. 우리는 일반적으로 각 x 값에 대해 하나의 열을 원합니다. x 값 열은NULL的模式 -itemname = "A"的行的新列A:

입니다. 으아아아

행 수를 변경한 것이 아니라 열을 추가했을 뿐입니다. 또한에는 null이 아닌 값이 있고 다른 새 열에는 null 값이 있습니다.按 hostid 分组

3단계: 확장 테이블을 그룹화하고 집계합니다

. y 값을 제공하기 때문에가 필요합니다.으아아아NULL

(이제 y 값당 하나의 행이 있다는 점에 유의하세요.)

좋아요, 거의 다 왔어요! 우리는 못생긴 것들을 제거하면 됩니다.

4단계: 아름답게 꾸미기

. 결과 집합이 더 보기 좋게 보이도록 null 값을 0으로 바꾸겠습니다.
으아아아

완료되었습니다. MySQL을 사용하여 아름다운 피벗 테이블을 만들었습니다.

이 프로세스를 적용할 때 주의할 사항:
  • 추가 열에 사용할 값. 이 예에서는itemvalue
  • 를 사용했습니다.
  • 추가 열에 사용할 "중립" 값.NULL,但也可能是0""를 사용했는데 상황에 따라 다릅니다
  • 그룹화할 때 사용할 집계 함수. 나는sum,但是countmax也经常使用(max단일 행을 구성할 때 자주 사용됨) 여러 행에 분산된 "객체"를 사용함)
  • 여러 열을 사용하여 y 값을 나타냅니다. 이 솔루션은 y 값에 단일 열을 사용하는 것으로 제한되지 않습니다. 추가 열을 삽입하기만 하면 됩니다(group by子句(并且不要忘记select그들)

알려진 제한사항:

  • 이 솔루션은 피벗 테이블에 n개의 열을 허용하지 않습니다. 기본 테이블을 확장할 때 각 피벗 열을 수동으로 추가해야 합니다. 따라서 5 또는 10 x 값의 경우 이 솔루션이 좋습니다. 100위안, 별로 좋지 않아요. 쿼리를 생성하기 위해 저장 프로시저를 사용하는 몇 가지 솔루션이 있지만 보기 흉하고 올바르게 수행하기가 어렵습니다. 현재 피벗 테이블에 많은 열이 있어야 할 때 이 문제를 해결할 수 있는 좋은 방법이 없습니다.
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!