更新时间:2025-03-13 GMT+08:00

Unique

算子说明

对下层的数据进行去重处理。在执行过程中,它将会遍历所有输入的数据,对其中的重复记录进行筛选,只保留唯一的记录。

典型场景

关闭enable_hashagg参数,使用带distinct查询。

示例

示例:使用带DISTINCT查询。

--数据准备。 
gaussdb=# CREATE TABLE t1 (id INT , number INT);
CREATE TABLE
gaussdb=# INSERT INTO t1 VALUES(generate_series(1,50), 1);
INSERT 0 50
gaussdb=# INSERT INTO t1 VALUES(generate_series(1,50), 2);
INSERT 0 50

--执行结果。 
gaussdb=# SET enable_hashagg = off;
SET
gaussdb=# EXPLAIN SELECT DISTINCT t1.id FROM t1;
                            QUERY PLAN                            
------------------------------------------------------------------
 Unique  (cost=150.43..161.18 rows=200 width=4)
   ->  Sort  (cost=150.43..155.80 rows=2149 width=4)
         Sort Key: id
         ->  Seq Scan on t1  (cost=0.00..31.49 rows=2149 width=4)
(4 rows)

--删除。
gaussdb=# DROP TABLE t1;