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