يمكن تطبيق المُركِّب If على الدالة count
لاحتساب عدد الصفوف التي يتحقق فيها الشرط،
باستخدام دالة المُركِّب التجميعي countIf.
في هذا المثال، سننشئ جدولًا لتخزين محاولات تسجيل دخول المستخدمين،
وسنستخدم countIf لحساب عدد عمليات تسجيل الدخول الناجحة.
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 لكل مستخدم.
┌─user_id─┬─successful_logins─┐
1. │ 1 │ 2 │
2. │ 2 │ 2 │
└─────────┴───────────────────┘
آخر تعديل في ٢٩ يونيو ٢٠٢٦