MySQL에서 피벗 테이블 출력 반환
다음과 같이 구성된 MySQL 테이블이 있다고 가정해 보겠습니다.
公司名称 | 操作 | 页数 |
---|---|---|
公司A | 打印 | 3 |
公司A | 打印 | 2 |
公司A | 打印 | 3 |
公司B | 邮件 | NULL |
公司B | 打印 | 2 |
公司B | 打印 | 2 |
公司B | 打印 | 1 |
公司A | 打印 | 3 |
이제 목표는 MySQL 쿼리를 실행하여 다음과 유사한 출력을 생성하는 것입니다.
公司名称 | 邮件 | 打印1页 | 打印2页 | 打印3页 |
---|---|---|---|---|
公司A | 0 | 0 | 1 | 3 |
公司B | 1 | 1 | 2 | 0 |
기본적으로 이 출력은 각 회사 이름에 대한 작업 및 페이지 수 조합을 기반으로 데이터를 정렬하는 피벗 테이블을 나타냅니다.
솔루션
MySQL에서 피벗 테이블 출력을 반환하려면 CASE 문을 사용하여 각 셀에 대한 조건을 정의하고 GROUP BY를 사용하여 회사 이름별로 데이터를 정렬할 수 있습니다.
제공된 예제에 대한 SQL 문은 다음과 같습니다.
<code class="language-sql">SELECT P.`company_name`, COUNT( CASE WHEN P.`action`='EMAIL' THEN 1 ELSE NULL END ) AS 'EMAIL', COUNT( CASE WHEN P.`action`='PRINT' AND P.`pagecount` = '1' THEN P.`pagecount` ELSE NULL END ) AS 'PRINT 1 pages', COUNT( CASE WHEN P.`action`='PRINT' AND P.`pagecount` = '2' THEN P.`pagecount` ELSE NULL END ) AS 'PRINT 2 pages', COUNT( CASE WHEN P.`action`='PRINT' AND P.`pagecount` = '3' THEN P.`pagecount` ELSE NULL END ) AS 'PRINT 3 pages' FROM test_pivot P GROUP BY P.`company_name`;</code>
이 쿼리는 원하는 피벗 테이블 형식을 출력합니다.
중요사항
위 내용은 MySQL 쿼리를 사용하여 피벗 테이블 출력을 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!