深入探索SQL中的DISTINCT用法及其应用

在学习和使用数据库时,理解并掌握SQL语言的关键功能是必不可少的。其中一个常用的函数是DISTINCT,它能够帮助我们从查询结果中筛选出唯一的记录。今天,我们将一起探讨DISTINCT用法,并通过实例来进一步阐述其应用。

什么是DISTINCT?

在进行数据查询时,有时候我们可能需要得到一个不包含重复项的结果集。在这种情况下,可以使用SELECT DISTINCT语句来实现这个目的。这条语句会返回一组不同的值,即使它们出现在多行中也是如此。

实例:去除重复员工信息

假设我们有一个名为employees表,其中存储了公司所有员工的信息,如下所示:

+----+----------+

| id | name |

+----+----------+

| 1 | 张三 |

| 2 | 李四 |

| 3 | 王五 |

| 4 | 张三 |

| 5 | 李四 |

+----+----------+

如果要找出不同员工姓名,我们可以这样写:

SELECT DISTINCT name FROM employees;

执行这条命令后,我们将得到如下结果:

+----------+

| name |

+----------+

| 张三 |

| 李四 |

| 王五 +

实例:统计每个城市不同用户数量

考虑到另一个名为users表,它记录了用户基本信息及他们所居住的地理位置(city):

CREATE TABLE users (

id INT PRIMARY KEY,

username VARCHAR(255),

city VARCHAR(255)

);

INSERT INTO users (id, username, city) VALUES

(1, 'userA', '北京'),

(2, 'userB', '上海'),

(3, 'userC', '广州'),

(4, 'userD', '北京'),

(5, 'userE', '深圳');

要统计每个城市内不同用户数量,我们可以这样操作:

SELECT city, COUNT(DISTINCT id) AS unique_users_count FROM users GROUP BY city;

运行这段代码后,将会显示各个城市内独特用户人数:

city unique_users_count

Beijing 2

Shanghai 1

Guangzhou 1

Shenzhen 1