使用额外列选择distinct

时间:2016-02-11 23:30:16

标签: sql postgresql

我有一张来自各种回购的提交表。我想选择所有用户,并最多获得一个与之关联的回购。

我的尝试:

SELECT distinct(author_id), repo_id FROM commits

这会返回比预期更多的行,其中包含author_id'的重复项。

2 个答案:

答案 0 :(得分:3)

使用distinct on

根据documentation

  

DISTINCT ON(expression [,...])仅保留给定表达式求值的每组行的第一行。使用与ORDER BY相同的规则解释DISTINCT ON表达式(参见上文)。请注意,除非使用ORDER BY确保首先显示所需的行,否则每个集合的“第一行”都是不可预测的。

SELECT distinct on (author_id) author, repo_id FROM commits
order by author

答案 1 :(得分:-1)

SELECT distinct(author_id), repo_id FROM commits
GROUP BY author_id

用于MYSQL