SQLite DISTINCT 关键字
                           
天天向上
发布: 2025-03-04 08:45:40

原创
801 人浏览过

DISTINCT 关键字用于从查询结果中去除重复的行,确保返回的结果集中的每一行都是唯一的。它通常与 SELECT 语句一起使用,用于获取不重复的记录。

基本语法

SELECT DISTINCT column1, column2, ...
FROM table_name
WHERE condition;
  • DISTINCT: 用于去除重复的行。
  • column1, column2, ...: 需要查询的列。
  • table_name: 查询的数据表。
  • condition: 可选的查询条件。

1. 返回唯一的单列值

DISTINCT 可以用于返回某一列中的唯一值。重复的值会被去除。

示例:

  • 获取 employees 表中所有不同的 department 值:
  SELECT DISTINCT department
  FROM employees;
  • 该查询返回所有不同的部门名称,去除了重复的部门。

2. 返回唯一的多列组合

DISTINCT 不仅可以应用于单列,也可以应用于多个列。它将返回所有列组合的唯一行。如果两个或多个列的组合完全相同,那么只有一行会被保留。

示例:

  • 获取 employees 表中不同的 departmentjob_title 组合:
  SELECT DISTINCT department, job_title
  FROM employees;
  • 该查询返回每个部门和职位的唯一组合。如果有相同部门和职位的多条记录,只返回一条。

3. DISTINCTWHERE 子句

DISTINCT 可以与 WHERE 子句一起使用,先根据指定条件筛选数据,再去除重复记录。

示例:

  • 获取薪资大于 3000 的不同 department
  SELECT DISTINCT department
  FROM employees
  WHERE salary > 3000;
  • 该查询返回所有薪资大于 3000 的唯一部门。

4. DISTINCT 与 聚合函数

在一些情况下,你可能会想先对数据进行聚合后再去重。DISTINCT 关键字也可以与聚合函数(如 COUNT()SUM()AVG() 等)一起使用。

示例:

  • 计算每个部门中不同职位的数量:
  SELECT department, COUNT(DISTINCT job_title)
  FROM employees
  GROUP BY department;
  • 该查询返回每个部门内不同职位的数量。

5. DISTINCTORDER BY 排序

DISTINCTORDER BY 可以一起使用,首先去除重复的行,然后按指定的列进行排序。

示例:

  • 获取所有不同的 department,并按字母顺序排序:
  SELECT DISTINCT department
  FROM employees
  ORDER BY department;
  • 该查询首先去除重复的部门,然后按部门名称升序排列。

总结

  • DISTINCT 用于去除查询结果中的重复行,确保每一行都是唯一的。
  • 它可以与单列或多列一起使用,去除重复的列值或列组合。
  • 可以与 WHERE 子句、聚合函数、ORDER BY 等一起使用,增加查询的灵活性。
  • 当你希望得到不重复的数据时,DISTINCT 是一个非常有用的工具。

通过使用 DISTINCT,你可以轻松地从数据集中获取唯一的值或组合。更多详细内容请关注其他相关文章。

发表回复 0

Your email address will not be published. Required fields are marked *