我有一张来自各种回购的提交表。我想选择所有用户,并最多获得一个与之关联的回购。
我的尝试:
SELECT distinct(author_id), repo_id FROM commits
这会返回比预期更多的行,其中包含author_id'的重复项。
答案 0 :(得分:3)
使用distinct on
。
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