意思是DISTINCT ON ( expression [, …] )把记录根据[, …]的值进行分组,分组之后仅返回每一组的第一行. 需要注意的是,如果你不指定ORDER BY子句,返回的第一条的不确定的.如果你使用了ORDER BY 子句, 那么[, …]里面的值必须靠近ORDER BY子句的最左边. postgres=# CREATE TABLE score_ranking (id int, name text, subject text, score numeric); postgres…