ホームページ >データベース >mysql チュートリアル >データをアンピボットして 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 サイトの他の関連記事を参照してください。