【发布时间】:2015-01-02 15:45:01
【问题描述】:
我有一个由 user_id 和 item_id(用户已购买的项目的 ID)组成的 Hive 表。 我想获取购买了商品 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???
如您所见,我不知道如何检查数组 itemslist 是否包含 1 而不是 2。
你是怎么做到的? 如果有更有效的方法,你能告诉我两种(或更多)方法吗?
【问题讨论】: