PostgreSQL 教程
1. PostgreSQL 教程 2. Linux 上安装 PostgreSQL 3. Windows 上安装 PostgreSQL 4. Mac OS 上安装 PostgreSQL 5. PostgreSQL 语法 6. PostgreSQL 数据类型 7. PostgreSQL 创建数据库 8. PostgreSQL 选择数据库 9. PostgreSQL 删除数据库 10. PostgreSQL 创建表格 11. PostgreSQL 删除表格 12. PostgreSQL 模式(SCHEMA) 13. PostgreSQL INSERT INTO 语句 14. PostgreSQL SELECT 语句 15. PostgreSQL 运算符 16. PostgreSQL 表达式 17. PostgreSQL WHERE 子句 18. PostgreSQL AND & OR 运算符 19. PostgreSQL UPDATE 语句 20. PostgreSQL DELETE 语句 21. PostgreSQL LIKE 子句 22. PostgreSQL LIMIT 子句 23. PostgreSQL ORDER BY 语句 24. PostgreSQL GROUP BY 语句 25. PostgreSQL WITH 子句 26. PostgreSQL HAVING 子句 27. PostgreSQL DISTINCT 关键字 28. PostgreSQL 约束 29. PostgreSQL 连接(JOIN) 30. PostgreSQL UNION 操作符 31. PostgreSQL NULL 值 32. PostgreSQL 别名 33. PostgreSQL 触发器 34. PostgreSQL 索引 35. PostgreSQL ALTER TABLE 命令 36. PostgreSQL TRUNCATE TABLE 37. PostgreSQL View(视图) 38. PostgreSQL TRANSACTION(事务) 39. PostgreSQL LOCK(锁) 40. PostgreSQL 子查询 41. PostgreSQL AUTO INCREMENT(自动增长) 42. PostgreSQL PRIVILEGES(权限) 43. PostgreSQL 时间/日期函数和操作符 44. PostgreSQL 常用函数

PostgreSQL DISTINCT 关键字

PostgreSQL DISTINCT 关键字

在 PostgreSQL 中,DISTINCT 关键字与 SELECT 语句一起使用,用于去除重复记录,只获取唯一的记录。

我们平时在操作数据时,有可能出现一种情况,在一个表中有多个重复的记录,当提取这样的记录时,DISTINCT 关键字就显得特别有意义,它只获取唯一一次记录,而不是获取重复记录。

语法

用于去除重复记录的 DISTINCT 关键字的基本语法如下:

SELECT DISTINCT column1, column2,.....columnN

FROM table_name

WHERE [condition]

实例

创建 COMPANY 表(下载 COMPANY SQL 文件 ),数据内容如下:

db# select * from COMPANY;

 id | name  | age | address   | salary

----+-------+-----+-----------+--------

  1 | Paul  |  32 | California|  20000

  2 | Allen |  25 | Texas     |  15000

  3 | Teddy |  23 | Norway    |  20000

  4 | Mark  |  25 | Rich-Mond |  65000

  5 | David |  27 | Texas     |  85000

  6 | Kim   |  22 | South-Hall|  45000

  7 | James |  24 | Houston   |  10000

(7 rows)

让我们插入两条数据:

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (8, 'Paul', 32, 'California', 20000.00 );



INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (9, 'Allen', 25, 'Texas', 15000.00 );

现在数据如下:

 id | name  | age | address    | salary

----+-------+-----+------------+--------

  1 | Paul  |  32 | California |  20000

  2 | Allen |  25 | Texas      |  15000

  3 | Teddy |  23 | Norway     |  20000

  4 | Mark  |  25 | Rich-Mond  |  65000

  5 | David |  27 | Texas      |  85000

  6 | Kim   |  22 | South-Hall |  45000

  7 | James |  24 | Houston    |  10000

  8 | Paul  |  32 | California |  20000

  9 | Allen |  25 | Texas      |  15000

(9 rows)

接下来我们找出 COMPANY 表中的所有 NAME:

db=# SELECT name FROM COMPANY;

得到结果如下:

 name

-------

 Paul

 Allen

 Teddy

 Mark

 David

 Kim

 James

 Paul

 Allen

(9 rows)

现在我们在 SELECT 语句中使用 DISTINCT 子句:

db=# SELECT DISTINCT name FROM COMPANY;

得到结果如下:

name

-------

 Teddy

 Paul

 Mark

 David

 Allen

 Kim

 James

(7 rows)

从结果可以看到,重复数据已经被删除。