countIf — 조건에 맞는 행 개수 세기
countIf — 조건에 맞는 행 개수 세기
countIf는 count 함수에 If 결합자를 적용해서 조건이 참인 행의 개수를 세는 방법을 보여드릴게요.
출처: 문서
본문
count 함수에 If 결합자를 적용하면 조건이 참인 행의 개수를 세는데, 이때 countIf 집계 결합자 함수를 사용해요.
이 예제에서는 사용자 로그인 시도 횟수를 저장하는 테이블을 만들고, countIf로 성공한 로그인 횟수를 세어볼게요.
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;
countIf 함수는 각 사용자에 대해 is_successful = 1인 행만 세어줘요.
Response
┌─user_id─┬─successful_logins─┐
1. │ 1 │ 2 │
2. │ 2 │ 2 │
└─────────┴───────────────────┘