ピボット テーブルはデータの要約に非常に役立ち、複数のディメンションにわたってデータを集計できます。 このガイドでは、CASE
ステートメントと GROUP BY
.
例:
次のサンプル MySQL テーブルについて考えてみましょう:
company_name | action | pagecount |
---|---|---|
Company A | 3 | |
Company A | 2 | |
Company A | 3 | |
Company B | NULL | |
Company B | 2 | |
Company B | 2 | |
Company B | 1 | |
Company A | 3 |
次の 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>
このクエリにより、次のピボット テーブルが生成されます:
company_name | PRINT 1 pages | PRINT 2 pages | PRINT 3 pages | |
---|---|---|---|---|
CompanyA | 0 | 0 | 1 | 3 |
CompanyB | 1 | 1 | 2 | 0 |
さらなる学習:
MySQL ピボット テーブルをより深く理解するには、次のリソースを参照してください。
以上がCASE ステートメントと GROUP BY を使用して MySQL でピボット テーブルを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。