行のリストを列に動的にピボットする必要があるシナリオがあります。特定のorder_number
の場合、いくつかのproduct
sが存在する可能性があります。これらのすべての製品をproduct_id
(列も同様)とともに個別の列に配置したいのですが、特定のorder_number
に対して製品の数を予測することはできません。
サンプル入力テーブルと必要な出力を添付します。 crosstab
関数を試しましたが、結果が正しくありません。
テーブル値:
必要な出力:
元々コメントとして残された投稿
最近では、属性ごとに動的列を作成するのではなく、通常、動的列を単一のJSON値に集約しています。しかし、それはあなたの古い(そしてサポートされていない)Postgresバージョンでは a-horse-with-no-name でも同様に挑戦かもしれません。
SQLで目的の出力を直接取得することはできません。目的の出力を生成するクエリを生成するクエリを作成する必要があります。希望する出力をあきらめて、代わりにJSONを生成することも、より簡単になると考えられます。 - DanielVérité