目录
- SQL SELECT DISTINCT 语句简介
- SELECT DISTINCT 语法
- SELECT DISTINCT 示例
- 使用 SELECT DISTINCT 的常见场景
- SELECT DISTINCT 与其他子句组合使用
- 参考资料
SQL SELECT DISTINCT 语句简介
SELECT DISTINCT
语句是 SQL 查询中用于去除重复记录的工具。它从数据库中检索唯一(不重复)的数据行。在查询时使用 DISTINCT
关键字,可以确保查询结果中没有重复的行,通常用于获取列中的唯一值或去除重复的数据。
在使用 SELECT DISTINCT
时,整个结果集(不仅仅是某个列)都将基于唯一值来进行筛选。如果选择多个列,则 DISTINCT
会保证这几个列组合的值是唯一的。
SELECT DISTINCT 语法
SELECT DISTINCT
的基本语法如下:
SELECT DISTINCT column1, column2, ...
FROM table_name;
DISTINCT
:表示查询结果中去除重复的数据。column1, column2, ...
:指定查询的列,可以选择一个或多个列。FROM
:指定要查询的表名。
示例
SELECT DISTINCT department FROM employees;
- 该查询将返回
employees
表中所有唯一的部门名称。
SELECT DISTINCT 示例
示例 1:去除重复值
假设有一个 orders
表,存储了客户的订单信息,其中 customer_id
列表示客户的 ID。查询该表时,可能存在多个相同的客户 ID 值。如果我们只需要列出不同的客户 ID,则可以使用 DISTINCT
。
SELECT DISTINCT customer_id FROM orders;
- 该查询将返回
orders
表中唯一的客户 ID。
示例 2:查询多个列的唯一组合
DISTINCT
可以与多个列一起使用,以确保多个列组合的唯一性。
SELECT DISTINCT product_id, customer_id FROM orders;
- 该查询返回唯一的
product_id
和customer_id
组合。
示例 3:选择不同的城市
假设我们有一个 employees
表,其中包含员工的 name
和 city
信息。我们想查询所有不同的城市:
SELECT DISTINCT city FROM employees;
- 该查询返回
employees
表中唯一的城市列表。
使用 SELECT DISTINCT 的常见场景
- 获取唯一的记录:当我们需要获取一个列或多个列中不重复的值时,
DISTINCT
很有用。例如,获取所有不同的产品、客户或城市。 示例:SELECT DISTINCT city FROM customers;
- 数据去重:在执行数据查询时,有时数据表可能包含重复记录,使用
DISTINCT
可以去除这些重复记录,确保返回的结果集不包含重复项。 示例:SELECT DISTINCT email FROM users;
- 数据分析和报表:
DISTINCT
常用于生成报表或数据分析时,帮助提取唯一的业务数据,如产品种类、销售区域等。 示例:SELECT DISTINCT category FROM products;
SELECT DISTINCT 与其他子句组合使用
DISTINCT
语句常常与其他 SQL 子句结合使用,以进一步优化查询结果。以下是一些常见的组合方式:
1. 与 ORDER BY
子句结合使用
DISTINCT
可以与 ORDER BY
子句结合,按指定的列排序返回唯一的记录。
SELECT DISTINCT department FROM employees ORDER BY department;
- 该查询将返回唯一的部门名称,并按字母顺序排序。
2. 与 WHERE
子句结合使用
DISTINCT
可以与 WHERE
子句结合,先根据条件筛选数据,然后返回唯一的记录。
SELECT DISTINCT city FROM customers WHERE country = 'USA';
- 该查询将返回美国 (
USA
) 中所有不同的城市。
3. 与聚合函数结合使用
在某些情况下,DISTINCT
也可以与聚合函数一起使用,用来对唯一的值进行统计。
SELECT COUNT(DISTINCT customer_id) FROM orders;
- 该查询返回不同客户的订单数量。
发表回复