SQL - DISTINCT 关键字:揭示唯一数据的强大力量

欢迎,有抱负的SQL爱好者们!今天,我们将踏上一段激动人心的SQL世界之旅,特别是专注于DISTINCT关键字。作为你友好邻里的计算机老师,我在这里用清晰的解释、大量的示例和一点幽默来引导你理解这个概念。所以,系好安全带,让我们跳进去!

SQL - Distinct Clause

SQL DISTINCT 关键字:通往独特性的大门

想象你在一个聚会上,你想知道有多少种不同的饮料。你不会分别计算每一罐可乐,对吧?这正是SQL中的DISTINCT关键字所做的——它帮助我们识别数据集中的唯一值。

DISTINCT关键字用于SELECT语句中,从结果集中移除重复的值。它就像一个神奇的过滤器,只向你展示每个项目的唯一实例,无论它在你的数据中出现多少次。

让我们从一个简单的例子开始:

SELECT DISTINCT column_name
FROM table_name;

这个查询将返回指定列中的唯一值。很酷吧?

在单个列上使用DISTINCT关键字:独一无二

假设我们有一个名为employees的表,其中有一个列department。为了看到所有唯一的部门而不重复,我们会使用:

SELECT DISTINCT department
FROM employees;

这个查询可能会返回以下内容:

department
----------
Sales
Marketing
IT
HR
Finance

即使销售部门有100名员工,它也只会在我们的结果中出现一次。这就像是在问,“我们有哪些不同的部门?”而不是“每个部门有多少人工作?”

在多个列上使用DISTINCT关键字:唯一的组合

现在,让我们加大难度!DISTINCT也可以在多个列上发挥作用。当你在多个列上使用DISTINCT时,它会寻找这些列中的唯一值组合。

考虑这个查询:

SELECT DISTINCT department, job_title
FROM employees;

这可能会给我们:

department | job_title
-----------+-----------
Sales      | Manager
Sales      | Associate
Marketing  | Coordinator
Marketing  | Director
IT         | Developer
IT         | Analyst

在这里,我们看到部门和工作职位的唯一组合。如果我们有多个销售经理,他们在这个列表中只会出现一次。

与COUNT()函数结合使用DISTINCT关键字:计算唯一性

这里的事情变得非常有趣!我们可以将DISTINCT与COUNT()函数结合使用来计算唯一值。这就像是在问,“我们有几种不同的冰淇淋?”而不是“总共有多少冰淇淋球?”

让我们看看它是如何工作的:

SELECT COUNT(DISTINCT department) AS unique_departments
FROM employees;

这个查询将返回我们公司中唯一部门的数量。如果我们有销售、市场、IT、人力资源和财务部门的员工,结果将是:

unique_departments
------------------
5

与NULL值一起使用DISTINCT关键字:NULL的奇妙案例

现在,让我们来谈谈经常让SQL新手感到困惑的事情:DISTINCT如何处理NULL值。在SQL中,NULL表示值的缺失,DISTINCT将NULL视为一个唯一值。

考虑这个例子:

SELECT DISTINCT manager_id
FROM employees;

如果有些员工没有经理(他们的manager_id是NULL),结果可能是:

manager_id
----------
1
2
3
NULL

NULL只出现一次,就像任何其他唯一值一样。

DISTINCT方法:你的唯一性工具箱

让我们总结一下我们可以使用DISTINCT的不同方式,并整理成一个方便的表格:

方法 语法 描述
单列 SELECT DISTINCT column FROM table; 从一列中返回唯一值
多列 SELECT DISTINCT column1, column2 FROM table; 从多列中返回值的唯一组合
与COUNT()结合 SELECT COUNT(DISTINCT column) FROM table; 计算一列中的唯一值数量
与NULL值 SELECT DISTINCT column FROM table; 将NULL视为一个唯一值

记住,当你想要关注数据中的多样性而不是数量时,DISTINCT是你的朋友。它就像是一种超能力,让你能够穿透混乱,关注每条数据的独特之处。

在我们结束这堂课时,我希望你对在SQL查询中使用DISTINCT关键字感到更有信心。这是一个简单而强大的工具,可以帮助你从数据中获得宝贵见解。

下次你处理数据库时,想想DISTINCT作为你的个人数据整理器。它在那里帮助你穿透噪音,关注数据中真正重要的部分。

继续练习,保持好奇心,并记住:在SQL的世界里,保持独特总是很时尚!

Credits: Image by storyset