gpt4 book ai didi

sql - 将限制设置为 array_agg()

转载 作者:行者123 更新时间:2023-11-29 11:14:47 27 4
gpt4 key购买 nike

我有以下 Postgres 查询:

SELECT array_agg("Esns".id ) 
FROM public."Esns",
public."PurchaseOrderItems"
WHERE
"Esns"."PurchaseOrderItemId" = "PurchaseOrderItems".id
AND "PurchaseOrderItems"."GradeId"=2
LIMIT 2;

限制会影响行数。我希望它将 array_agg() 限制为 2 个项目。以下查询有效,但我得到的输出包含引号中的每个条目:

SELECT array_agg ("temp")  
FROM (
SELECT "Esns".id
FROM public."Esns",
public."PurchaseOrderItems"
WHERE
"Esns"."PurchaseOrderItemId" = "PurchaseOrderItems".id
AND "PurchaseOrderItems"."GradeId"=2
LIMIT 4
) as "temp" ;

这给了我以下输出

{(13),(14),(15),(12)}

有什么想法吗?

最佳答案

select id[1], id[2]
from (
SELECT array_agg("Esns".id ) as id
FROM public."Esns",
public."PurchaseOrderItems"
WHERE
"Esns"."PurchaseOrderItemId" = "PurchaseOrderItems".id
AND "PurchaseOrderItems"."GradeId"=2
) s

或者如果你想要输出为数组,你可以 slice它:

SELECT (array_agg("Esns".id ))[1:2] as id_array
FROM public."Esns",
public."PurchaseOrderItems"
WHERE
"Esns"."PurchaseOrderItemId" = "PurchaseOrderItems".id
AND "PurchaseOrderItems"."GradeId"=2

关于sql - 将限制设置为 array_agg(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12497607/

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