У меня есть таблица Hive, сделанная из user_id и item_id (идентификатор предметов, которые были приобретены пользователем). Я хочу, чтобы получить список всех пользователей, которые приобрели пункт 1, но не пункт 2 и 3.Элементы проверки верности в массиве
Чтобы сделать это, я написал простой запрос:
SELECT user_id, collect_set(item_id) itemslist FROM mytable
WHERE item_id in (1, 2)
GROUP BY user_id
HAVING -- what should I put here???
Как вы можете видеть, я не» t знать, как проверить, содержит ли список элементов массива 1, а не 2.
Как вы это делаете? Если есть более эффективный способ, можете ли вы рассказать мне обоим (или более) методам?
Что делать, если я хотел отобразить элемент, найденный в инструкции select, как бы я это сделал? –
array_contains не работает с шаблоном регулярного выражения. Например, если я хочу проверить, есть ли какой-либо элемент в массиве с подстрокой foo. *. Есть ли у вас предложения? –