SQL 使用DISTINCT的COUNT(*)查询
在本文中,我们将介绍使用DISTINCT的COUNT()查询。在SQL中,COUNT()用于计算某个数据库表中满足特定条件的记录数。而通过使用DISTINCT关键字,我们可以过滤重复的值,只计算唯一值的数量。
阅读更多:SQL 教程
COUNT(*)概述
COUNT()是SQL中一个常用的聚合函数,用于返回满足指定条件的记录数。通常,使用COUNT()的基本语法如下:
SELECT COUNT(*)
FROM table_name
WHERE condition;
在以上语法中,table_name是要进行统计的表名,condition是可选的过滤条件。如果不指定condition,COUNT(*)将返回表中的所有记录数。
下面,我们使用一个名为”users”的示例表来演示COUNT(*)的使用:
CREATE TABLE users (
id INT,
name VARCHAR(100),
age INT,
city VARCHAR(100)
);
INSERT INTO users (id, name, age, city)
VALUES (1, 'John', 25, 'New York'),
(2, 'Alice', 30, 'London'),
(3, 'Bob', 25, 'Paris'),
(4, 'Alice', 25, 'Tokyo'),
(5, 'John', 30, 'Berlin');
现在,我们可以通过以下查询来计算”users”表中的记录数:
SELECT COUNT(*)
FROM users;
执行上述查询,将返回结果为5,因为”users”表中共有5条记录。
使用DISTINCT的COUNT(*)
在某些情况下,我们可能只对具有不同值的记录进行计数,而忽略重复的记录。例如,我们想计算”users”表中唯一姓名(name)的数量。这时,我们可以使用DISTINCT关键字来过滤重复的值,然后再进行计数。
以下是使用DISTINCT的COUNT(*)查询的语法:
SELECT COUNT(DISTINCT column_name)
FROM table_name
WHERE condition;
在以上语法中,column_name是要进行唯一值计数的列名。
继续以上面的”users”表为例,我们可以计算不同名称的数量:
SELECT COUNT(DISTINCT name)
FROM users;
执行上述查询,将返回结果为3,因为”users”表中有3个不同的姓名。
示例
为了更好地理解使用DISTINCT的COUNT(*)查询,让我们在以下示例中继续使用”users”表。
- 计算不同城市的数量:
SELECT COUNT(DISTINCT city)
FROM users;
执行上述查询,将返回结果为4,因为”users”表中有4个不同的城市。
- 计算年龄为25岁的人数:
SELECT COUNT(*)
FROM users
WHERE age = 25;
执行上述查询,将返回结果为3,因为有3个人的年龄为25岁。
- 计算不同年龄和不同城市的组合数量:
SELECT COUNT(DISTINCT CONCAT(age, '-', city))
FROM users;
执行上述查询,将返回结果为5,因为”users”表中共有5个不同的年龄和城市的组合。
如上所示,通过使用DISTINCT关键字,我们可以在COUNT(*)查询中计算不同值的数量,从而更灵活地进行数据统计和分析。
总结
本文介绍了使用DISTINCT的COUNT()查询。COUNT()用于计算满足特定条件的记录数,而通过使用DISTINCT关键字,我们可以过滤重复的值,只计算唯一值的数量。我们通过示例演示了使用DISTINCT的COUNT()查询在不同情况下的应用场景。希望本文对你理解SQL中的COUNT()函数有所帮助。
极客教程