GROUP BY 및 여러 데이터 ID를 사용하여 MySQL 쿼리 결과를 피벗하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-07 17:09:03
원래의
813명이 탐색했습니다.

How to Pivot MySQL Query Results with GROUP BY and Multiple Data IDs?

GROUP BY를 사용한 MySQL PIVOT 쿼리 결과

문제:

데이터베이스 테이블을 다음으로 변환 행을 열로 표시하고 각 키에 대한 모든 데이터 값이 해당 열에 표시되는지 확인하면서 지정된 키(예: 타임스탬프)로 데이터를 그룹화합니다.

제안 쿼리:

SELECT d.data_timestamp,
       SUM(IF(data_id = 1, data_value, 0)) AS 'input_1',
       SUM(IF(data_id = 2, data_value, 0)) AS 'input_2',
       ...
       SUM(IF(data_id = 20, data_value, 0)) AS 'input_20'
FROM data
GROUP BY d.data_timestamp
ORDER BY d.data_timestamp ASC
로그인 후 복사

설명:

  • 외부 쿼리는 데이터 테이블에서 고유한 데이터 타임스탬프를 선택합니다.
  • 각 데이터 타임스탬프에 대해 쿼리는 SUM() 집계 내부의 IF() 함수를 사용하여 각 data_id에 대한 데이터 값의 합계.
  • data_id가 원하는 ID(예: input_1의 경우 1)와 일치하면 해당 데이터 값이 합계에 추가됩니다. ; 그렇지 않으면 0이 추가됩니다.
  • 이 계산은 각 data_id에 대해 최대 20까지 반복되어 각각의 다른 data_id에 대한 열을 생성합니다.
  • 최종 결과는 데이터 타임스탬프별로 그룹화되고 오름차순으로 정렬됩니다. order.

제한 사항:

  • 이 접근 방식은 쿼리의 각 data_id에 대해 명시적인 합계가 필요합니다. 많은 수의 ID.
  • 특정 요구 사항 및 데이터 구조에 따라 CASE 또는 다중 레벨 JOIN과 관련된 대체 접근 방식을 사용할 수 있습니다.

위 내용은 GROUP BY 및 여러 데이터 ID를 사용하여 MySQL 쿼리 결과를 피벗하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!