ホームページ >データベース >mysql チュートリアル >「unnest()」を使用して PostgreSQL テーブルを転置するにはどうすればよいですか?

「unnest()」を使用して PostgreSQL テーブルを転置するにはどうすればよいですか?

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

How Can I Transpose a PostgreSQL Table Using `unnest()`?

列を行に変換してテーブルを転置する

PostgreSQL でテーブルを操作する場合、テーブルを転置する必要がある場合があります。 、基本的に列を行に変換します。これは、さまざまなデータ分析の目的に役立つ変換です。

問題ステートメント:

次の形式でデータを出力する PostgreSQL 関数またはテーブルがあります:

Sl.no username Designation salary etc..
1 A XYZ 10000 ...
2 B RTS 50000 ...
3 C QWE 20000 ...
4 D HGD 34343 ...

出力が次のように表示されるように、このテーブルを転置したいとします。形式:

Sl.no 1 2 3 4 ...
Username A B C D ...
Designation XYZ RTS QWE HGD ...
Salary 10000 50000 20000 34343 ...

解決策:

この転置を実現するには、PostgreSQL の unnest() 関数を使用できます。この関数を使用すると、配列から要素を抽出し、それらを個別の行として扱うことができます。

テーブルを転置するクエリは次のとおりです:

SELECT
   unnest(array['Sl.no', 'username', 'Designation','salary']) AS "Columns",
   unnest(array[Sl.no, username, value3Count,salary]) AS "Values"
FROM view_name
ORDER BY "Columns"

説明:

  • array[...] は、列名と各列の対応する値を含む配列を構築します。 row.
  • unnest() 関数は、配列から各要素を抽出し、それらを個別の行として扱います。
  • ORDER BY 句は、転置されたテーブルが元の列順序を持つことを保証します。

このクエリは、目的の転置テーブルを出力します。 format.

リファレンス:

unnest() 関数は、PostgreSQL ドキュメントの「convertingColumnsToRows」に記載されています。

以上が「unnest()」を使用して PostgreSQL テーブルを転置するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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