gpt4 book ai didi

sql - 如何通过每个产品单行的产品获得不同的价格

转载 作者:行者123 更新时间:2023-11-29 12:57:18 25 4
gpt4 key购买 nike

订单包含不同价格的相同产品。

如何按顺序获取每个产品的不同价格列表,每个产品一行?

我试过了

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

最佳答案

鉴于您的错误消息,并且来自 what I read here on Stack Overflow来自 @GordonLinoff 这样的专家,您不能在 STRING_AGG 中使用 DISTINCT。一个快速的解决方法是首先对您的表进行子查询,然后在其中使用 DISTINCT 来删除重复项。

SELECT t.product, STRING_AGG(t.price::text, ',' ORDER BY price)
FROM
(
SELECT DISTINCT product, price
FROM (VALUES ('A', 100), ('A', 100), ('A', 200), ('B', 200), ('B', 200))
orderdetail (product, price)
) t
GROUP BY t.product

我在 Postgres 上测试了这个查询,它返回了这个:

product | string_agg
text | text
A | 100,200
B | 200

关于sql - 如何通过每个产品单行的产品获得不同的价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39845136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com