Pg的distinct on和distinct的使用

46 阅读1分钟

distinct

distinct的功能

distinct是按照列去重

SELECT distinct  FROM 表名  

当多列的时候

SELECT distinct[列1,列2] FROM 表名
SELECT DISTINCT A ,B FROM 表名
SELECT DISTINCT  A ,B FROM XXX 

可以看见按照多列的值进行了去重

image.png

distinct on

distinct on的功能

distinct on是组内去重,把记录根据" (分组列名)" 的值进行分组,并返回分组后每一组的第一行

SELECT DISTINCT ON (分组列名) 列名[, 列名...] from 表名 
SELECT DISTINCT ON(A) A  ,B FROM XXX 

image.png

Tips:当使用distinct on 的使用,如果还要使用order by 那么order by后的第一个字段必须要是分组的字段