SQLPathLab
基础查询 · 基础

DISTINCT

去除查询结果中的重复行,保留唯一组合。

简介

DISTINCT 根据 SELECT 列表中的全部字段组合去除重复行。选择一列时得到该列的唯一值;选择多列时,只有整组值都相同才会合并。不要用 DISTINCT 掩盖 JOIN 条件错误造成的重复,应先确认重复的业务原因。

基础语法

SELECT DISTINCT department FROM employees;

示例

DISTINCT 示例

读取 employees 中唯一的 department 值,比较原始重复部门与去重后的结果。

示例数据表

表名:employees
employees
department
Sales
IT
Sales
HR

运行结果

result
department
Sales
IT
HR

常见问题

DISTINCT 根据哪些字段去重?

它根据 SELECT 中列出的全部字段组合判断重复,而不是只看第一个字段。

DISTINCT 会保留几个 NULL?

对参与去重的同一列组合,多个 NULL 通常会折叠为一个结果组合。

DISTINCT 能代替 GROUP BY 吗?

只需要唯一组合时用 DISTINCT;需要分组聚合时应使用 GROUP BY。

标签

常用过滤数据

这篇内容是否清楚?