在多列上调用 SELECT DISTINCT

Rhy*_*Ink 4 postgresql distinct

我不清楚确切地,

SELECT DISTINCT col1, col2, ...
FROM table_name
Run Code Online (Sandbox Code Playgroud)

当对一列调用时,它只返回该列的不同值。当我们将它与多个列一起使用时会发生什么,我们应该这样做吗?

ype*_*eᵀᴹ 7

这是如何工作的?

它为您提供了SELECT列表中所有表达式的不同组合。

SELECT DISTINCT col1, col2, ... 
FROM table_name ;
Run Code Online (Sandbox Code Playgroud)

也相当于:

SELECT col1, col2, ... 
FROM table_name 
GROUP BY  col1, col2, ... ;
Run Code Online (Sandbox Code Playgroud)

查看它如何工作的另一种方法——可能更准确——是它充当公共裸SELECT( ALL) 然后删除任何重复的行。请参阅有关SELECT:DISTINCT子句的Postgres 文档。

我们应该这样做吗?

当然。如果你需要它,你可以使用它。