MySQL 中的 COUNT IF 方法
Preet Sanghavi
2023年1月3日
2022年5月13日
在本教程中,我們旨在探索如何在 MySQL 中使用 COUNT IF
方法。
MySQL 中的 COUNT()
方法將表中的總行數作為輸出。但在本文中,我們有興趣瞭解如何根據資料中的特定 IF
條件計算資訊。
只有當值滿足 IF
查詢片段中提到的表示式或條件時,IF
命令才向我們提供不同的非空值的總數。
讓我們瞭解這種方法是如何工作的。
在開始之前,我們建立一個虛擬資料集來處理。
-- 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");
在 MySQL 中使用 Count IF
COUNT IF
技術的基本語法如下所示。
SELECT COUNT(IF(<condition>, <expr>, NULL)) AS alias FROM name_of_the_table;
如上面的查詢所示,我們的目標是根據在 IF
子句中定義為 condition
的條件從特定表中計算在此處表示為 expr
的不同或非不同值。
在我們的學生詳細資訊表中,讓我們計算不同的 stu_id
的總數,他們的 stu_firstName
以 reet
結尾。可以使用以下查詢來完成此任務。
SELECT DISTINCT
COUNT(DISTINCT IF(stu_firstName like '%reet',
stu_id,
NULL)) AS count_student_ids
FROM student_details;
此程式碼計算來自 student_details
表的不同數量的 stu_id
,條件是 stu_firstName
應在 IF
子句中以 reet
結尾。
輸出:
count_student_ids
1
注意
在上面的程式碼片段中,我們在 MySQL 中使用別名
count_student_ids
和 AS
關鍵字。COUNT IF
技術的替代方法是 SUM CASE
技術,它可以幫助我們獲得類似的結果。
因此,在 COUNT IF
技術的幫助下,我們可以有效地計算基於 MySQL 表中特定條件的實體出現的總數。
Author: Preet Sanghavi