商品1和商品2但是没有购买商品3的顾客"/>
Hive综合案例练习(中级)第十八题:购买过商品1和商品2但是没有购买商品3的顾客
购买过商品1和商品2但是没有购买商品3的顾客
题目需求
从订单明细表(order_detail)中查询出所有购买过商品1和商品2,但是没有购买过商品3的用户,期望结果如下:
user_id |
---|
103 |
105 |
代码实现
select user_id
from
(select user_id,sum(if(sku_id='1', 1, 0)) is_one,sum(if(sku_id='2', 1, 0)) is_two,sum(if(sku_id='3', 1, 0)) is_threefrom (select oi.user_id,od.sku_id from order_detail od left join order_info oi on od.order_id = oi.order_id group by oi.user_id,od.sku_id)t1group by user_id
)t2
where is_one='1' and is_two='1' and is_three='0';
hive>
select user_id
from
(select user_id,collect_set(sku_id) skusfrom order_detail odleft joinorder_info oion od.order_id = oi.order_idgroup by user_id
) t1
where array_contains(skus, '1')
and array_contains(skus, '2')
and !array_contains(skus, '3');
更多推荐
Hive综合案例练习(中级)第十八题:购买过商品1和商品2但是没有购买商品3的顾客
发布评论