web-dev-qa-db-ja.com

PostgreSQLの動的ピボット

行のリストを列に動的にピボットする必要があるシナリオがあります。特定のorder_numberの場合、いくつかのproductsが存在する可能性があります。これらのすべての製品をproduct_id(列も同様)とともに個別の列に配置したいのですが、特定のorder_numberに対して製品の数を予測することはできません。

サンプル入力テーブルと必要な出力を添付します。 crosstab関数を試しましたが、結果が正しくありません。

テーブル値: enter image description here

必要な出力:

enter image description here

1
Sandeep

元々コメントとして残された投稿

最近では、属性ごとに動的列を作成するのではなく、通常、動的列を単一のJSON値に集約しています。しかし、それはあなたの古い(そしてサポートされていない)Postgresバージョンでは a-horse-with-no-name でも同様に挑戦かもしれません。

SQLで目的の出力を直接取得することはできません。目的の出力を生成するクエリを生成するクエリを作成する必要があります。希望する出力をあきらめて、代わりにJSONを生成することも、より簡単になると考えられます。 - DanielVérité


0
user126897