小编use*_*817的帖子

将限制设置为array_agg()

我有以下Postgres查询:

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

限制将影响行.我希望它限制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" ;
Run Code Online (Sandbox Code Playgroud)

这给了我以下输出

{(13),(14),(15),(12)}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

sql arrays postgresql limit

11
推荐指数
2
解决办法
6087
查看次数

将连接限制为一行

我有以下查询:

SELECT sum((select count(*) as itemCount) * "SalesOrderItems"."price") as amount, 'rma' as     
    "creditType", "Clients"."company" as "client", "Clients".id as "ClientId", "Rmas".* 
FROM "Rmas" JOIN "EsnsRmas" on("EsnsRmas"."RmaId" = "Rmas"."id") 
    JOIN "Esns" on ("Esns".id = "EsnsRmas"."EsnId") 
    JOIN "EsnsSalesOrderItems" on("EsnsSalesOrderItems"."EsnId" = "Esns"."id" ) 
    JOIN "SalesOrderItems" on("SalesOrderItems"."id" = "EsnsSalesOrderItems"."SalesOrderItemId") 
    JOIN "Clients" on("Clients"."id" = "Rmas"."ClientId" )
WHERE "Rmas"."credited"=false AND "Rmas"."verifyStatus" IS NOT null 
GROUP BY "Clients".id, "Rmas".id;
Run Code Online (Sandbox Code Playgroud)

问题是表"EsnsSalesOrderItems"可以EsnId在不同的条目中具有相同的表.我想将查询限制为仅拉取"EsnsSalesOrderItems"具有相同的最后一个条目"EsnId".

"最后"条目我指的是以下内容:

表中最后出现的那个"EsnsSalesOrderItems".因此,例如,如果"EsnsSalesOrderItems"有两个条目和"EsnId" = 6和 …

sql postgresql join greatest-n-per-group sql-limit

5
推荐指数
3
解决办法
2万
查看次数

标签 统计

postgresql ×2

sql ×2

arrays ×1

greatest-n-per-group ×1

join ×1

limit ×1

sql-limit ×1