【发布时间】:2012-09-20 22:49:11
【问题描述】:
我有以下疑问:
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;
问题是表"EsnsSalesOrderItems" 可以在不同的条目中具有相同的EsnId。我想将查询限制为仅提取"EsnsSalesOrderItems" 中具有相同"EsnId" 的最后一个条目。
“最后一个”条目是指以下内容:
表格中最后出现的那个"EsnsSalesOrderItems"。因此,例如,如果 "EsnsSalesOrderItems" 有两个条目分别为 "EsnId" = 6 和 "createdAt" = '2012-06-19' 和 '2012-07-19' 它应该只给我来自 '2012-07-19' 的条目。
【问题讨论】:
标签: sql postgresql join greatest-n-per-group sql-limit