MySQL の COUNT IF メソッド
Preet Sanghavi
2023年1月3日
このチュートリアルでは、MySQL で COUNT IF
メソッドを使用する方法を探ることを目的としています。
MySQL の COUNT()
メソッドは、テーブル内の行の総数を出力として提供します。ただし、この記事では、データから特定の IF
条件に基づいて情報をカウントする方法を理解することに関心があります。
IF
コマンドは、値が IF
クエリフラグメントに記載されている式または条件を満たしている場合にのみ、null 以外の個別の値の総数を示します。
この方法がどのように機能するかを理解しましょう。
開始する前に、作業するダミーデータセットを作成します。
-- 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_firstName
が reet
で終わる個別の stu_id
の総数を数えましょう。このタスクは、次のクエリを使用して実行できます。
SELECT DISTINCT
COUNT(DISTINCT IF(stu_firstName like '%reet',
stu_id,
NULL)) AS count_student_ids
FROM student_details;
このコードは、stu_firstName
が IF
句の reet
で終わるという条件の下で、student_details
テーブルからの stu_id
の個別の数をカウントします。
出力:
count_student_ids
1
注
上記のコードスニペットでは、MySQL の
AS
キーワードでエイリアス count_student_ids
を使用しています。COUNT IF
手法の代わりに、同様の結果を達成するのに役立つ SUM CASE
手法があります。
したがって、COUNT IF
手法を使用すると、MySQL のテーブルから特定の条件に基づいてエンティティの発生の総数を効率的にカウントできます。
著者: Preet Sanghavi