计算 MySQL 中的不同值

Preet Sanghavi 2023年1月3日 2022年5月14日
计算 MySQL 中的不同值

在本教程中,我们将介绍计算不同值的不同方法。

MySQL 中的 COUNT() 方法将表中的总行数作为输出。但是,在本文中,我们有兴趣了解如何计算或计算表达式的不同出现次数。执行此操作的语法可以写成 COUNT(DISTINCT expression)。此命令为我们提供了作为特定表达式输出的不同非空值的总数。

让我们看看这个方法的实际效果。

然而,在我们开始之前,我们创建了一个虚拟数据集来使用。在这里,我们创建了一个表,student_details,以及其中的几行。

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

上面的查询创建了一个表以及其中包含学生名字和姓氏的行。为了查看数据中的条目,我们使用以下代码:

SELECT * FROM student_details;

上面的代码将给出以下输出。

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

计算 MySQL 中的不同值

如上所述,MySQL COUNT (DISTINCT expression) 函数为我们提供了具有唯一非空值的行数。为了计算具有唯一名字的学生数量,我们使用以下代码。

-- Count the number of students with different first names
SELECT COUNT(DISTINCT stu_firstName) as distinct_first_names FROM student_details ;

上面的代码计算 student_details 表中不同名字的数量。上面代码的输出如下。

distinct_first_names
7

因此,我们可以看到唯一名称(Preet、Rich、Veron、Geo、Hash、Sachin 和 David)已被计算为最终计数为 7。

注意
在上面的代码中,我们使用别名 distinct_first_names 作为 MySQL 中的 AS 关键字。
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub