Какому выражению со скобками эквивалентно условие is_new = 1 OR is_paying = 1 AND has_coupon = 1, если AND выполняется раньше OR?
A
is_new = 1 OR (is_paying = 1 AND has_coupon = 1)B
(is_new = 1 OR is_paying = 1) AND has_coupon = 1C
(is_new = 1 AND is_paying = 1) OR has_coupon = 1D
is_new = 1 AND (is_paying = 1 OR has_coupon = 1)Правильный ответ.
AND имеет более высокий приоритет, поэтому сначала вычисляется is_paying = 1 AND has_coupon = 1.Разбор
В выражениях фильтрации AND обычно выполняется раньше OR. Поэтому запись без скобок читается как is_new = 1 OR (is_paying = 1 AND has_coupon = 1). Если вы хотели сгруппировать иначе, добавьте скобки и не полагайтесь на приоритет операторов.
Проверь себя · 1/3разбор после ответа
Какое условие является
always false для флага is_paying, который принимает только 0 или 1?Ещё вопросы по теме «Булева логика и фильтры»
- В фильтре написали `country = 'RU' AND device = 'ios' OR device = 'android'`. Какой набор строк реально пройдёт фильтр при стандартном приоритете, где `AND` сильнее `OR`?
- Какое условие эквивалентно `NOT (is_paying = 1 AND has_subscription = 1)` по правилу `De Morgan`?
- Вы хотите выбрать строки, которые не относятся к `country = 'RU' OR country = 'KZ'`. Какое выражение соответствует `NOT (country = 'RU' OR country = 'KZ')` по правилу `De Morgan`?
- В таблице пользователей есть флаги `has_email_optin` и `has_push_optin` (0 или 1). Нужно выбрать пользователей, у которых включён ровно один канал (email или push, но не оба). Какое условие корректно?
- В сегмент нужно включить пользователей, у которых активен хотя бы один из флагов: `is_student = 1` или `has_coupon = 1`. Какое условие соответствует формулировке «хотя бы один»?
- Все вопросы по «Булева логика и фильтры» →