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.