ご注文には価格が異なる同じ商品が含まれています。商品ごとに単列で商品ごとに異なる価格を得る方法
製品ごとに異なる価格のリストを、製品ごとに1行にする方法を教えてください。
私は
SELECT product, string_AGG(DISTINCT price::text, ',' ORDER BY price)
FROM (VALUES ('A', 100), ('A', 200) , ('B', 200))
orderdetail (product, price)
GROUP BY product
を試みたが、この問題を解決するためにどのようにエラー
ERROR: in an aggregate with DISTINCT, ORDER BY expressions must appear in argument list
LINE 1: ...ct, string_AGG(DISTINCT price::text, ',' ORDER BY price DESC...
を得ましたか。
Postgres 9.4が使用されます。
これはおそらく、あなたのエラーメッセージが与えられ How to find changed prices in last two purchase invoices
価格はorderdetailテーブルに二列である::テキストは文字列の価格リストを取得するにはテキストにそのタイプを変更するキャストはpostgresです。おそらく標準的なSQLで 'cast(price as text)'と書くことができます – Andrus
商品ごとに異なる価格のリストを取得するにはどうすればいいですか? –
はい、異なる価格の商品を含む商品ごとに1行が昇順で表示されます。 2列目はおそらく文字列の代わりに配列にすることもできます – Andrus