代码示例:
在 PostgreSQL 数据库中,DISTINCT
关键字有多种用法,可以帮助你从查询结果中去除重复的记录。以下是 DISTINCT
关键字的四种常见用法:
-
基本去重:
使用DISTINCT
可以去除查询结果中的重复行。例如,如果你有一个员工表employees
,并且想要查询所有不同的职位,你可以使用以下查询:SELECT DISTINCT job_title FROM employees;
这将返回每个不同的职位,即使某些职位在表中出现多次也只列出一次 。
-
多列去重:
当你需要根据多个列的组合来去重时,可以在SELECT
语句中指定多个列名。例如,如果你想要查询employees
表中每个员工的不同职位和部门组合,可以使用:SELECT DISTINCT job_title, department FROM employees;
这将返回每对唯一的职位和部门组合 。
-
DISTINCT ON:
DISTINCT ON
是 PostgreSQL 的一个特殊用法,它允许你指定一个或多个列作为标准来去除每个分组的重复行,通常与ORDER BY
子句结合使用以确定哪些行被保留。例如,如果你想要查询每个部门薪水最高的员工,可以使用:SELECT DISTINCT ON (department) employee_name, job_title, salary FROM employees ORDER BY department, salary DESC;
这将为每个部门返回薪水最高的员工记录 。
-
与聚合函数一起使用:
DISTINCT
也可以与聚合函数一起使用,例如COUNT
,MAX
,MIN
等,来计算唯一值的数量或最大/最小值。例如,如果你想要计算employees
表中不同职位的数量,可以使用:SELECT COUNT(DISTINCT job_title) FROM employees;
这将返回表中不同职位的数量 。
-
IS DISTINCT FROM:
这是一个特殊的用法,用于比较两个表达式是否不同,包括处理NULL
值。例如:SELECT * FROM table WHERE column1 IS DISTINCT FROM column2;
如果
column1
和column2
的值不同,或者一个是NULL
而另一个不是,则该行将被选中 。
这些是 DISTINCT
关键字在 PostgreSQL 中的一些常见用法,可以帮助你根据需要去除重复数据或进行特定的数据比较。
喜欢本文,请点赞、收藏和关注!