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

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

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-21 04:51:08667ブラウズ

How Can I Unpivot Data While Keeping Original Column Names in SQL?

データのデコンボリューションのために元の列名を保持します

データのデコンボリューション (アンピボット) は、表形式のデータを別の形式に変換するプロセスであり、各列が行になり、その列名が行の属性になります。これは通常、分析や視覚化のためにデータを再形成するために使用されますが、場合によっては、元の列名を保持すると便利な場合があります。

質問:

NameMathsScienceEnglish などの列名を持つデータ テーブルがある場合、データをデコンボリューションして次の結果セットを取得するにはどうすればよいでしょうか?

Name Subject Marks
Tilak Maths 90
Tilak Science 40
Tilak English 60

解決策:

SQL の UNPIVOT 句を使用すると、列名を維持しながらデータをデコンボリューションできます。

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

UNPIVOT 句は、MathsScience、および English 列を行に変換し、スコアはデコンボリューションされた結果セットの「マーク」列になります。同時に、列名は「件名」列に残ります。

例:

次のデータセットについて考えてみましょう:

Name Maths Science English
Tilak 90 40 60
Raj 30 20 10

提供されたクエリをこのデータセットに適用すると、望ましい結果が得られます:

Name Subject Marks
Tilak Maths 90
Tilak Science 40
Tilak English 60
Raj Maths 30
Raj Science 20
Raj English 10

この手法は、さらなる分析やデータ処理のために元の列名を保持することが重要な場合に役立ちます。

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

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