MySQL の COUNT IF メソッド

Preet Sanghavi 2023年1月3日
MySQL の COUNT IF メソッド

このチュートリアルでは、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_firstNamereet で終わる個別の stu_id の総数を数えましょう。このタスクは、次のクエリを使用して実行できます。

SELECT DISTINCT
    COUNT(DISTINCT IF(stu_firstName like '%reet',
            stu_id,
            NULL)) AS count_student_ids
FROM student_details;

このコードは、stu_firstNameIF 句の reet で終わるという条件の下で、student_details テーブルからの stu_id の個別の数をカウントします。

出力:

count_student_ids
1
上記のコードスニペットでは、MySQL の AS キーワードでエイリアス count_student_ids を使用しています。

COUNT IF 手法の代わりに、同様の結果を達成するのに役立つ SUM CASE 手法があります。

したがって、COUNT IF 手法を使用すると、MySQL のテーブルから特定の条件に基づいてエンティティの発生の総数を効率的にカウントできます。

著者: Preet Sanghavi
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

関連記事 - MySQL Query