ホームページ >データベース >mysql チュートリアル >データをアンピボットして SQL の列名を保持するにはどうすればよいですか?

データをアンピボットして SQL の列名を保持するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-21 04:33:08241ブラウズ

How Can I Unpivot Data and Retain Column Names in SQL?

「逆」操作を使用してデータを再構築し、列名を保持します

「逆」操作は、表形式のデータを再構築するための重要なツールです。データを列指向の形式から行指向の形式に変換できます。一般的なシナリオは、元のテーブルからデータと列名を抽出することです。

さまざまな科目での生徒の成績を追跡する、StudentMarks と呼ばれる次の表を考えてみましょう:

姓名 数学 科学 英语
Tilak 90 40 60
Raj 30 20 10

目的の出力は、名前、件名、スコアの 3 つの列を含む再構成されたテーブルです。

姓名 科目 分数
Tilak 数学 90
Tilak 科学 40
Tilak 英语 60

これを実現するには、以下に示すように「反転」操作を使用できます。

<code class="language-sql">select u.name, u.subject, u.marks
from student s
unpivot
(
  marks
  for subject in (Maths, Science, English)
) u;</code>

このクエリは、名前とアカウント情報を保持したまま、StudentMarks テーブルのデータを正常に元に戻します。 「FOR」句は、データを抽出する列名を指定します。

あなたが述べたように、元のクエリは名前と分数の値を正常に反転しましたが、アカウント列が欠落していました。変更されたクエリでは、最終的な選択リストにアカウント列を含めることで、この問題を解決します。

このソリューションは、表形式データを再構築する柔軟な方法を提供し、データ値と対応する列名の抽出を可能にします。

以上がデータをアンピボットして SQL の列名を保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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