Passer au contenu principal

Description

Le combinateur If peut s’appliquer à la fonction count pour compter le nombre de lignes pour lesquelles la condition est vraie, à l’aide de la fonction de combinateur d’agrégation countIf.

Exemple d’utilisation

Dans cet exemple, nous allons créer une table pour stocker les tentatives de connexion des utilisateurs, et utiliser countIf pour compter le nombre de connexions réussies.
Query
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 fonction countIf ne comptera, pour chaque utilisateur, que les lignes où is_successful = 1.
Response
   ┌─user_id─┬─successful_logins─┐
1. │       1 │                 2 │
2. │       2 │                 2 │
   └─────────┴───────────────────┘

Voir aussi

Dernière modification le 29 juin 2026