SQL 使用DISTINCT的COUNT(*)查询

SQL 使用DISTINCT的COUNT(*)查询

在本文中,我们将介绍使用DISTINCT的COUNT()查询。在SQL中,COUNT()用于计算某个数据库表中满足特定条件的记录数。而通过使用DISTINCT关键字,我们可以过滤重复的值,只计算唯一值的数量。

阅读更多:SQL 教程

COUNT(*)概述

COUNT()是SQL中一个常用的聚合函数,用于返回满足指定条件的记录数。通常,使用COUNT()的基本语法如下:

SELECT COUNT(*) 
FROM table_name 
WHERE condition;
SQL

在以上语法中,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');
SQL

现在,我们可以通过以下查询来计算”users”表中的记录数:

SELECT COUNT(*) 
FROM users;
SQL

执行上述查询,将返回结果为5,因为”users”表中共有5条记录。

使用DISTINCT的COUNT(*)

在某些情况下,我们可能只对具有不同值的记录进行计数,而忽略重复的记录。例如,我们想计算”users”表中唯一姓名(name)的数量。这时,我们可以使用DISTINCT关键字来过滤重复的值,然后再进行计数。

以下是使用DISTINCT的COUNT(*)查询的语法:

SELECT COUNT(DISTINCT column_name) 
FROM table_name 
WHERE condition;
SQL

在以上语法中,column_name是要进行唯一值计数的列名。

继续以上面的”users”表为例,我们可以计算不同名称的数量:

SELECT COUNT(DISTINCT name) 
FROM users;
SQL

执行上述查询,将返回结果为3,因为”users”表中有3个不同的姓名。

示例

为了更好地理解使用DISTINCT的COUNT(*)查询,让我们在以下示例中继续使用”users”表。

  1. 计算不同城市的数量:
SELECT COUNT(DISTINCT city) 
FROM users;
SQL

执行上述查询,将返回结果为4,因为”users”表中有4个不同的城市。

  1. 计算年龄为25岁的人数:
SELECT COUNT(*) 
FROM users 
WHERE age = 25;
SQL

执行上述查询,将返回结果为3,因为有3个人的年龄为25岁。

  1. 计算不同年龄和不同城市的组合数量:
SELECT COUNT(DISTINCT CONCAT(age, '-', city)) 
FROM users;
SQL

执行上述查询,将返回结果为5,因为”users”表中共有5个不同的年龄和城市的组合。

如上所示,通过使用DISTINCT关键字,我们可以在COUNT(*)查询中计算不同值的数量,从而更灵活地进行数据统计和分析。

总结

本文介绍了使用DISTINCT的COUNT()查询。COUNT()用于计算满足特定条件的记录数,而通过使用DISTINCT关键字,我们可以过滤重复的值,只计算唯一值的数量。我们通过示例演示了使用DISTINCT的COUNT()查询在不同情况下的应用场景。希望本文对你理解SQL中的COUNT()函数有所帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册