ホームページ > データベース > mysql チュートリアル > CASE ステートメントと GROUP BY を使用して MySQL でピボット テーブルを作成する方法

CASE ステートメントと GROUP BY を使用して MySQL でピボット テーブルを作成する方法

Susan Sarandon
リリース: 2025-01-25 20:35:09
オリジナル
943 人が閲覧しました

How to Create Pivot Tables in MySQL Using CASE Statements and GROUP BY?

MySQL でのピボット テーブルの生成: ガイド

ピボット テーブルはデータの要約に非常に役立ち、複数のディメンションにわたってデータを集計できます。 このガイドでは、CASE ステートメントと GROUP BY.

を使用して MySQL でピボット テーブルを作成する方法を説明します。

例:

次のサンプル MySQL テーブルについて考えてみましょう:

company_name action pagecount
Company A PRINT 3
Company A PRINT 2
Company A PRINT 3
Company B EMAIL NULL
Company B PRINT 2
Company B PRINT 2
Company B PRINT 1
Company A PRINT 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 EMAIL 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート