計算 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