Сегмент определён как is_paying = 1 OR has_trial = 1. Нужно выбрать пользователей, которые не входят в этот сегмент. Какое условие корректно?

ANOT (is_paying = 1 OR has_trial = 1)
BNOT (is_paying = 1) OR NOT (has_trial = 1)
Cis_paying = 0 OR has_trial = 0
DNOT (is_paying = 1 AND has_trial = 1)
Правильный ответ. Для отрицания A OR B по De Morgan используется NOT A AND NOT B, что эквивалентно NOT (A OR B).

Разбор

Если сегмент задан как is_paying = 1 OR has_trial = 1, то «не в сегменте» значит, что не выполняется ни один из двух признаков. Это записывается как NOT (is_paying = 1 OR has_trial = 1) или эквивалентно NOT (is_paying = 1) AND NOT (has_trial = 1). Вариант с OR между отрицаниями слишком мягкий и пропускает пользователей, у которых один из признаков всё ещё истинный.

Проверь себя · 1/3разбор после ответа
Какое условие эквивалентно NOT (is_paying = 1 AND has_subscription = 1) по правилу De Morgan?
Открыть Карьерник в Telegram

Ещё вопросы по теме «Булева логика и фильтры»