SQLite DISTINCT 关键字
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表中不同的department和job_title组合:
SELECT DISTINCT department, job_title
FROM employees;
- 该查询返回每个部门和职位的唯一组合。如果有相同部门和职位的多条记录,只返回一条。
3. DISTINCT 与 WHERE 子句
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. DISTINCT 与 ORDER BY 排序
DISTINCT 和 ORDER BY 可以一起使用,首先去除重复的行,然后按指定的列进行排序。
示例:
- 获取所有不同的
department,并按字母顺序排序:
SELECT DISTINCT department
FROM employees
ORDER BY department;
- 该查询首先去除重复的部门,然后按部门名称升序排列。
总结
DISTINCT用于去除查询结果中的重复行,确保每一行都是唯一的。- 它可以与单列或多列一起使用,去除重复的列值或列组合。
- 可以与
WHERE子句、聚合函数、ORDER BY等一起使用,增加查询的灵活性。 - 当你希望得到不重复的数据时,
DISTINCT是一个非常有用的工具。
通过使用 DISTINCT,你可以轻松地从数据集中获取唯一的值或组合。更多详细内容请关注其他相关文章。