DISTINCT
去除查询结果中的重复行,保留唯一组合。
简介
DISTINCT 根据 SELECT 列表中的全部字段组合去除重复行。选择一列时得到该列的唯一值;选择多列时,只有整组值都相同才会合并。不要用 DISTINCT 掩盖 JOIN 条件错误造成的重复,应先确认重复的业务原因。
基础语法
SELECT DISTINCT department FROM employees;
示例
DISTINCT 示例
读取 employees 中唯一的 department 值,比较原始重复部门与去重后的结果。
示例数据表
表名:
employees| department |
|---|
| Sales |
| IT |
| Sales |
| HR |
运行结果
| department |
|---|
| Sales |
| IT |
| HR |
常见问题
DISTINCT 根据哪些字段去重?
它根据 SELECT 中列出的全部字段组合判断重复,而不是只看第一个字段。
DISTINCT 会保留几个 NULL?
对参与去重的同一列组合,多个 NULL 通常会折叠为一个结果组合。
DISTINCT 能代替 GROUP BY 吗?
只需要唯一组合时用 DISTINCT;需要分组聚合时应使用 GROUP BY。
标签
这篇内容是否清楚?
感谢反馈,我们会把它用于后续内容复核。