Sql 选择带有额外列的distinct
我有一张各种回购协议的承诺表。我想选择所有用户,并获得最多一个他们关联的回购协议 我的尝试:Sql 选择带有额外列的distinct,sql,postgresql,Sql,Postgresql,我有一张各种回购协议的承诺表。我想选择所有用户,并获得最多一个他们关联的回购协议 我的尝试: SELECT distinct(author_id), repo_id FROM commits 但是,这会返回比预期更多的行,其中包含作者id的副本。使用上的distinct 按照 DISTINCT ON(表达式[,…])仅保留给定表达式计算结果相等的每组行的第一行。DISTINCT ON表达式使用与ORDER BY相同的规则进行解释(见上文)。请注意,每个集合的“第一行”是不可预测的,除非使用OR
SELECT distinct(author_id), repo_id FROM commits
但是,这会返回比预期更多的行,其中包含作者id的副本。使用
上的distinct
按照
DISTINCT ON(表达式[,…])仅保留给定表达式计算结果相等的每组行的第一行。DISTINCT ON表达式使用与ORDER BY相同的规则进行解释(见上文)。请注意,每个集合的“第一行”是不可预测的,除非使用ORDER BY来确保所需的行首先出现
在
上使用不同
按照
DISTINCT ON(表达式[,…])仅保留给定表达式计算结果相等的每组行的第一行。DISTINCT ON表达式使用与ORDER BY相同的规则进行解释(见上文)。请注意,每个集合的“第一行”是不可预测的,除非使用ORDER BY来确保所需的行首先出现
对于MYSQL
对于MYSQL非常好的答案!我从来都不知道,答案很好!我从来都不知道这件事。
SELECT distinct on (author_id) author, repo_id FROM commits
order by author
SELECT distinct(author_id), repo_id FROM commits
GROUP BY author_id