ホームページ >データベース >mysql チュートリアル >MySQL で動的データを使用して行から列への変換 (ピボット) を実行する方法

MySQL で動的データを使用して行から列への変換 (ピボット) を実行する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-28 11:51:10868ブラウズ

How to Perform Row to Column Transformation (Pivot) in MySQL with Dynamic Data?

MySQL の行から列への変換: 動的データのピボット テーブル

ピボット テーブルは、行指向からデータを変換する便利な方法です。形式を列指向の形式に変更すると、分析とレポートが容易になります。 MySQL では、この変換は特殊な技術を通じて実現できます。

次のデータ例を考えてみましょう:

ID Type Email Degignation
1000000000 202 [email protected] Entrepreneur
1000000000 234 [email protected] Engineering,Development
1000000000 239 [email protected] CTO

このデータをピボットするには、次のクエリを利用します:

SELECT ID, 
 MAX(CASE Type WHEN 202 THEN Degignation END) AS `202`
 MAX(CASE Type WHEN 234 THEN Degignation END) AS `234`
 MAX(CASE Type WHEN 239 THEN Degignation END) AS `239`
 Email
FROM mytable
GROUP BY ID, Email

このクエリは CASE 式を使用して、個別の Type 値ごとに列を動的に作成します。 MAX 関数は、各 ID と電子メールの組み合わせの Degignation 値を集計するために使用されます。

このクエリが効果的に機能するには、可能なすべての Type 値を事前に知っておく必要があることに注意することが重要です。 MySQL では、実行時に検出されたデータに基づいてカラムを動的に追加することはできません。列定義はクエリの準備中は静的である必要があります。

この手法を使用すると、行指向のデータを列指向の形式に変換でき、より直観的なデータ プレゼンテーションを提供することで分析とレポートのタスクが容易になります。

以上がMySQL で動的データを使用して行から列への変換 (ピボット) を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。