PostgreSQL教程

PostgreSQL DISTINCT

在本节中,我们将了解 PostgreSQL DISTINCT子句的工作原理,该子句用于删除匹配的行或表中的数据并仅获取唯一记录。
注意: DISTINCT子句仅与SELECT命令一起使用。 DISTINCT子句对SELECT命令的选择列表中的几列有用,并且对于每个重复组都保留一行。

PostgreSQL选择不同子句的语法

DISTINCT子句的基本语法如下:
Syntax1
在以下语法中, 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(表达式)连续执行ORDER BY子句以使结果可预期,因为这是一项出色的练习。
注意: ORDER BY子句中最左边的表达式必须与DISTINCT ON表达式匹配。

PostgreSQL SELECT DISTINCT的示例

要了解DISTINCT子句在PostgreSQL中的工作原理,我们将看到一些示例。
为此,我们正在 创建一个名为 demo_dist 的新表,并将 插入一些值到特定表中。在本部分中,我们仅在 psql或pgAdmin 中执行命令。
要查看PostgreSQL的 Select Distinct命令的示例, strong> Pgadmin4 ,我们需要执行以下步骤:
Step1
我们将在创建表命令,如下面的命令所示,我们已经创建了 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 表已成功创建。
PostgreSQL DISTINCT
Step2
创建 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 表中。
Step3
表借助以下SELECT命令:
SELECT Serial_No,Summer_fruits, Winter_fruits
FROM demo_dist ;
输出
一旦执行了上述命令,我们将获得以下输出:
PostgreSQL DISTINCT

PostgreSQL DISTINCT的示例一列

在下面的示例中,我们将在 Summer_fruits 表中的/strong>列,然后执行 ORDER BY子句按顺序获取结果。
SELECT DISTINCT Summer_fruits
FROM demo_dist 
ORDER BY Summer_fruits ;
输出
执行上述命令后,我们将获得以下输出,其中将获得 夏季_水果列的列表
PostgreSQL DISTINCT

使用PostgreSQL DISTINCT的多列示例

在下面的示例中,我们将在一个或多个列上使用DISTINCT子句,
要使用distinctary子句获取各个列的值,我们将使用 Summer_fruits和Winter_fruits 列,如以下命令所示:
SELECT DISTINCT Summer_fruits, Winter_fruits
FROM demo_dist
ORDER BY Summer_fruits, Winter_fruits;
输出
执行上述命令后,我们将获得以下输出,其中包含 夏季_fruits和Winter_fruits 的列表。
PostgreSQL DISTINCT
在上述命令中,我们描述了两个 Summer_fruits和 SELECT DISTINCT 子句中的Winter_fruits 列;这就是为什么PostgreSQL将 Summer_fruits和Winter_fruits 列中的值都加入来分析行的唯一性的原因。
一旦执行上述命令,它将返回 的唯一组合 Demo_dist 表中的Summer_fruits和Winter_fruits
注意: Demo_dist表在Summer_fruits和Winter_fruits列中都有两行,其值为Apples。当我们对两列使用DISTINCT时,从输出中删除了一行,因为它是重复的。

示例PostgreSQL DISTINCT ON

在下面的示例中,我们将按 Summer_fruits和Winter_fruits 对结果进行排序,并将每行重复值的第一行保留在返回的输出中。
SELECT Distinct ON (Summer_fruits) summer_fruits, winter_fruits
FROM public.demo_dist
ORDER BY Summer_fruits, winter_fruits;
输出
执行上述命令后,我们将获得以下输出,其中显示了结果,其中两个列(即Summer_fruits和winter_fruits)都没有显示相似的值。
PostgreSQL DISTINCT
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4