Skip to content

SQLite - DISTINCT 关键字

DISTINCT 关键字与 SELECT 语句一起使用,用于从结果集中删除重复的行,只返回每个唯一行的一个实例。

当您对某一列或多列组合中存在的唯一值感兴趣,而不是每个单独出现的值时,这尤其有用。

DISTINCT 的基本语法是将其紧随 SELECT 关键字之后。

SELECT DISTINCT column1, column2, ...
FROM table_name
WHERE [condition];

当指定多列时,DISTINCT 会考虑这些列中值的组合来确定唯一性。

考虑一个包含以下记录的 SALES 表。请注意部门和地区的重复条目。

ID | DEPARTMENT | REGION | AMOUNT
---|-------------|-----------|--------
1 | Electronics | North | 1200
2 | Clothing | North | 800
3 | Electronics | South | 1500
4 | Clothing | North | 300
5 | Books | West | 450
6 | Electronics | North | 1100
7 | Books | West | 200

首先,对 DEPARTMENT 列执行一个标准的 SELECT 查询,它会显示所有条目,包括重复项。

sqlite> SELECT department FROM SALES;
DEPARTMENT
-----------
Electronics
Clothing
Electronics
Clothing
Books
Electronics
Books

现在,让我们使用 DISTINCT 关键字来查找进行了销售的唯一部门。

sqlite> SELECT DISTINCT department FROM SALES;
DEPARTMENT
-----------
Electronics
Clothing
Books

现在结果显示了一个清晰的唯一部门列表。

您还可以将 DISTINCT 应用于多个列。以下查询返回部门和地区的唯一组合。

sqlite> SELECT DISTINCT department, region FROM SALES;
DEPARTMENT | REGION
------------|-------
Electronics | North
Clothing | North
Electronics | South
Books | West