【发布时间】:2015-02-28 21:48:31
【问题描述】:
我使用的是 PostgreSQL 9.4。
我有 workout lists 和一个关联的连接表,列出了该列表中的哪些锻炼。
我想返回列表中每个锻炼的 5 个最新结果。
下面返回每个结果,如果我附加LIMIT 5,我总共只会得到 5 个结果,而不是每次锻炼 5 个。我如何在 SQL 中执行此操作?
SELECT "results".* FROM "results"
WHERE "results"."user_id" = 1
AND workout_id IN (SELECT workout_id FROM workout_list_join_table
WHERE workout_list_id = 5)
ORDER BY "results"."done_at" DESC
【问题讨论】:
-
此类查询的最佳性能:stackoverflow.com/questions/25536422/…
标签: sql postgresql greatest-n-per-group postgresql-9.4