深入探索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