ホームページ >データベース >mysql チュートリアル >CASE 関数と集計関数を使用して MySQL で行を列にピボットする方法

CASE 関数と集計関数を使用して MySQL で行を列にピボットする方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-03 02:28:11751ブラウズ

How to Pivot Rows into Columns in MySQL Using CASE and Aggregate Functions?

MySQL で行を列に変換する方法

ピボット テーブルは、データをより簡単な形式に再配置するために使用される一般的なデータ変換です。読んで分析する。このシナリオでは、複数の行を含む結果セットを、個別の Type 値ごとの列と、一意の ID と電子メールの組み合わせごとの行を含むテーブルに変換したいと考えています。

これを MySQL で実現するには、次のクエリ:

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 値に基づいて各行の Degignation 値を条件付きで設定します。 MAX() 集計関数は、ID と電子メールの各グループ内の各タイプの最大 Degignation 値を返します。

注: プレースホルダー テーブル名 (mytable) をデータを含む実際のテーブル名。さらに、SQL ではクエリの実行中に列を動的に追加できないため、すべての個別の Type 値を事前に知っておく必要があります。

以上がCASE 関数と集計関数を使用して MySQL で行を列にピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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