El método COUNT IF en MySQL

Preet Sanghavi 28 marzo 2022
El método COUNT IF en MySQL

En este tutorial, nuestro objetivo es explorar cómo usar el método COUNT IF en MySQL.

El método COUNT() en MySQL da como resultado el número total de filas en la tabla. Pero en este artículo, estamos interesados ​​en entender cómo podemos contar información basada en una condición IF particular de nuestros datos.

El comando IF nos da el número total de valores distintos no nulos solo si los valores satisfacen la expresión o la condición mencionada en el fragmento de consulta IF.

Vamos a entender cómo funciona este método.

Antes de comenzar, creamos un conjunto de datos ficticio para trabajar.

-- 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");

Uso del Count IF en MySQL

La sintaxis básica de la técnica COUNT IF se puede ilustrar de la siguiente manera.

SELECT  COUNT(IF(<condition>, <expr>, NULL)) AS alias FROM name_of_the_table;

Como se ve en la consulta anterior, nuestro objetivo es contar valores distintos o no distintos indicados como expr aquí de una tabla particular basada en una condición definida en la cláusula IF como condition.

En nuestra tabla de detalles de estudiantes, contemos el número total de stu_id distintos con su stu_firstName que termina en reet. Esta tarea se puede lograr mediante la siguiente consulta.

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

Este código cuenta números distintos de stu_id de la tabla student_details dada la condición de que stu_firstName debe terminar en reet en la cláusula IF.

Producción :

count_student_ids
1

Nota: En el fragmento de código anterior, usamos el alias count_student_ids con la palabra clave AS en MySQL.

Una alternativa a la técnica COUNT IF es la técnica SUM CASE que nos puede ayudar a conseguir resultados similares.

Por lo tanto, con la ayuda de la técnica COUNT IF, podemos contar de manera eficiente el número total de ocurrencias de una entidad en función de una condición particular de una tabla en MySQL.

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

Artículo relacionado - MySQL Query