게시물 검색을 시도했지만 SQL Server/Access에 대한 솔루션만 찾았습니다. MySQL(5.X)에 솔루션이 필요합니다.
hostid, itemname, itemvalue라는 3개의 열이 있는 테이블(기록이라고 함)이 있습니다.
선택(select * from History
)을 수행하면
유사한 콘텐츠를 반환하기 위해 데이터베이스를 쿼리하는 방법
으아악P粉9201997612023-10-14 10:02:42
이 문제를 해결하기 위한 단계에 대해 더 길고 자세한 설명을 추가하겠습니다. 너무 길었다면 사과드립니다.
귀하가 제공한 기초부터 시작하여 이를 사용하여 이 기사의 나머지 부분에서 사용할 몇 가지 용어를 정의하겠습니다. 이것이 기본 테이블이 됩니다:
으아아아이것이 우리의 목표가 될 것입니다. 멋진 피벗 테이블:
으아아아history.hostid
열의 값은 피벗 테이블의 history.hostid
列中的值将成为数据透视表中的y 值。 history.itemname
y 값이 됩니다. history.itemname
열의 값은 x-values
피벗 테이블 생성 문제를 해결해야 할 때는 3단계 프로세스(선택 사항인 네 번째 단계 포함)를 사용하여 문제를 해결합니다.
다음 단계를 문제에 적용하고 결과를 살펴보겠습니다.
1단계: 관심 있는 열을 선택하세요hostid
提供y 值,itemname
. 원하는 결과에서 hostid
는 y 값 을 제공하고
x 값 을 제공합니다.
itemname
. 우리는 일반적으로 각 x 값에 대해 하나의 열을 원합니다. x 값 열은 NULL
的模式 - itemname = "A"
的行的新列 A
:
행 수를 변경한 것이 아니라 열을 추가했을 뿐입니다. 또한 에는 null이 아닌 값이 있고 다른 새 열에는 null 값이 있습니다.
按 hostid 分组
. y 값을 제공하기 때문에 가 필요합니다.
으아아아
NULL
좋아요, 거의 다 왔어요! 우리는 못생긴 것들을 제거하면 됩니다 .
4단계: 아름답게 꾸미기
. 결과 집합이 더 보기 좋게 보이도록 null 값을 0으로 바꾸겠습니다.완료되었습니다. MySQL을 사용하여 아름다운 피벗 테이블을 만들었습니다.
🎜 🎜이 프로세스를 적용할 때 주의할 사항:🎜itemvalue
NULL
,但也可能是 0
或 ""
를 사용했는데 상황에 따라 다릅니다sum
,但是 count
和 max
也经常使用(max
단일 행을 구성할 때 자주 사용됨) 여러 행에 분산된 "객체"를 사용함) group by
子句(并且不要忘记 select
그들)알려진 제한사항: