El combinador If se puede aplicar a la función count
para contar el número de filas en las que se cumple la condición,
mediante la función de combinador agregado countIf.
En este ejemplo, crearemos una tabla que almacena los intentos de inicio de sesión de los usuarios
y usaremos countIf para contar el número de inicios de sesión correctos.
CREATE TABLE login_attempts(
user_id UInt32,
timestamp DateTime,
is_successful UInt8
) ENGINE = MergeTree
ORDER BY ();
INSERT INTO login_attempts VALUES
(1, '2024-01-01 10:00:00', 1),
(1, '2024-01-01 10:05:00', 0),
(1, '2024-01-01 10:10:00', 1),
(2, '2024-01-01 11:00:00', 1),
(2, '2024-01-01 11:05:00', 1),
(2, '2024-01-01 11:10:00', 0);
SELECT
user_id,
countIf(is_successful = 1) AS successful_logins
FROM login_attempts
GROUP BY user_id;
La función countIf contará únicamente las filas en las que is_successful = 1 para cada usuario.
┌─user_id─┬─successful_logins─┐
1. │ 1 │ 2 │
2. │ 2 │ 2 │
└─────────┴───────────────────┘
Última modificación el 10 de junio de 2026