SQL 中的 DISTINCT 关键字用于从查询结果集中删除重复行。它确保查询仅返回指定列的唯一记录。
当 SELECT 查询检索数据时,输出中可能存在重复行。通过添加 DISTINCT 关键字,SQL 会过滤掉这些重复项,只保留指定列中每个唯一值组合的出现一次。
SELECT DISTINCT column1, column2, ... FROM table_name;
考虑一张桌子员工:
EmployeeID | Department |
---|---|
1 | HR |
2 | IT |
3 | HR |
4 | Sales |
查询:
SELECT DISTINCT Department FROM Employees;
Department |
---|
HR |
IT |
Sales |
此处,部门列中的重复项已被删除。
OrderID | CustomerID | ProductID |
---|---|---|
101 | 1 | A |
102 | 1 | B |
103 | 1 | A |
104 | 2 | C |
查询:
SELECT DISTINCT CustomerID, ProductID FROM Orders;
CustomerID | ProductID |
---|---|
1 | A |
1 | B |
2 | C |
这里,DISTINCT 根据 CustomerID 和 ProductID 的组合过滤掉重复的行。
寻找独特的价值:
当您想知道一列或列组合中的所有唯一值时。
示例:列出库存中所有不同的产品类别。
消除冗余:
当分析或报告不需要结果集中的重复行时。
示例:从员工数据库中获取唯一的部门名称。
用于数据清理:
通过删除重复项来帮助准备干净的数据集。
性能影响:
使用 DISTINCT 会减慢查询速度,尤其是在大型数据集上,因为 SQL 必须扫描和比较行以过滤重复项。
不适用于条件重复数据删除:
如果您想要条件重复数据删除(例如,为每个唯一值保留最新行),您需要其他技术,例如 ROW_NUMBER()。
DISTINCT 关键字是一个简单而强大的工具,用于消除 SQL 查询结果中的重复行。它确保您的输出仅包含唯一值,使其成为数据报告和分析任务的理想选择。但是,请明智地使用它来平衡性能和准确性。
以上是掌握 SQL DISTINCT:删除重复项变得简单的详细内容。更多信息请关注PHP中文网其他相关文章!