【发布时间】:2017-07-27 11:03:04
【问题描述】:
SELECT id, author_id, max(result_score) as maxscore
FROM submissions
WHERE challenge_id = 10
GROUP BY author_id
ORDER BY maxscore DESC, created_at ASC
此查询从每个得分最高且创建时间最早的作者那里获取提交(一个)。最后,我们应该得到有序的提交,每个作者一个,所有的都按 maxscore 和 created_at 排序
这在 SQLite3 中运行良好,但在 PostgreSQL 上编译失败,因为它更严格。
PostgreSQL 要求 id 在 group by 子句或某种聚合函数中使用。
我尝试了各种方法,使用DISTINCT ON 或HAVING,但无法使其正常工作。这种查询是否可能,如果可以,有什么方法可以在这里实现我想要的?
【问题讨论】:
标签: sql postgresql sqlite