SELECT DISTINCT 简介
DISTINCT 放在 SELECT 语句中,用于删除结果集中重复的行,DISTINCT 子句为每组重复项保留一行,它可用于数据表的一列或多列。
DISTINCT 子句的语法如下:
SELECT
DISTINCT field_1
FROM
table_name;
在此声明中,field_1 字段中的值用于评估重复项。
PostgreSQL 还提供了DISTINCT ON(表达式)
,用来在多字段里,依然使用第一个字段来判断是否重复。
SELECT
DISTINCT ON(field_1),
field_2
FROM
table_name
ORDER BY
field_1,
field_2;
从 SELECT
语句返回的行的顺序是不可预知的,因此每个副本组的“第一行”也是不可预知的。所以,我们建议在使用 DISTINCT ON(表达式)
的语句时,总是使用 ORDER BY
子句进行排序,以便使返回的结果集更清晰明了。
注意:DISTINCT ON(表达式)里的 表达式,必须与 ORDER BY 子句的第一个表达式一致。