PostgreSQL Distinct去重

在本节中,我们将了解PostgreSQL DISTINCT 子句的工作原理,该子句用于从表中删除匹配的行或数据并仅获取唯一记录。

PostgreSQL select distinct 子句的语法

DISTINCT子句的基本语法如下:

语法1

在以下语法中,column1中的值用于评估重复项。

如果我们描述各个列,DISTINCT子句将根据这些列值的分组来分析匹配的行或数据。

Select Distinct column1  
FROM table_name;  

语法2

如果column1和column2列都具有相似的值,那么要获取重复值,我们可以使用以下语法:

SELECT DISTINCT column1, column2  
FROM table_name;  

语法3

PostgreSQL还提供了 DISTINCT ON 表达式来维护每组重复项的第一行。因此,对于这些情况,可以使用以下命令:

SELECT DISTINCT ON (column1) column_alias, column2  
FROM table_name  
ORDER BY column1, column2 ;  

如果我们连续执行带有DISTINCT ON(expression)的 ORDER BY 子句以使结果符合预期,因为这是一个很好的练习。

PostgreSQL SELECT DISTINCT 示例

要了解 PostgreSQL 中 DISTINCT 子句的工作原理,我们将看一些示例。

为此,我们正在创建一个名为demo_dist的新表,并将一些值插入到特定表中。在本节中,我们只是在psql 或 pgAdmin中执行命令。

要查看PostgreSQL 的Pgadmin4中Select Distinct 命令的示例,我们需要执行以下步骤:

第1步:

我们将在CREATE TABLE命令的帮助下创建一个表,正如我们在下面的命令中看到的那样,我们已经创建了Demo_dist表,该表由三列Serial_NO、Summer_fruits 和 Winter_fruits 组成。

CREATE TABLE demo_dist(  
    Serial_No serial NOT NULL PRIMARY KEY,  
    Summer_fruits VARCHAR,  
    Winter_fruits VARCHAR     
);  

执行完上面的命令后,我们会得到下面的消息窗口;Demo_dist表已成功创建。

第2步

创建Demo_dist表后,我们将借助以下 INSERT 命令向其中插入一些值:

INSERT INTO demo_dist (Summer_fruits, Winter_fruits)  
VALUES('Mango', 'Grape'),  
('Watermelon', 'Pears'),('Apples','Apples'),   
('Mango', NULL),(NULL, 'Mango'), ('Apples','Apples'),  
('Guava', 'Oranges'),('Pineapple', 'Pineapple'),  
('Musk Melon', ' Bananas'),('Litchi', 'Cranberries');  

执行完上面的命令后,我们会得到下面的消息窗口;值已成功插入到Demo_dist表中。

第3步

之后,我们将借助以下 SELECT 命令从Demo_dist表中选择数据:

SELECT Serial_No,Summer_fruits, Winter_fruits  
FROM demo_dist ;  

执行上述命令后,我们将获得以下输出:

热门文章

优秀文章