希音(Shein)大数据面试题及参考答案

用SQL实现怎么找A表有B表没有的数据

可以通过使用 LEFT JOINNOT EXISTS 来实现。下面是使用 NOT EXISTS 的写法:

-- 查询购买商品A但没有购买商品B的用户
SELECT user_id
FROM purchase p1
WHERE p1.product_id = 'A'
AND NOT EXISTS (
    SELECT 1
    FROM purchase p2
    WHERE p2.user_id = p1.user_id
    AND p2.product_id = 'B'
);

希音(Shein)大数据面试题及参考答案_第1张图片

另外,也可以使用 LEFT JOIN 来实现: 

-- 使用 LEFT JOIN 查询购买商品A但没有购买商品B的用户
SELECT p1.user_id
FROM purchase p1
LEFT JOIN purchase p2 ON p1.user_id = p2.user_id AND p2.product_id = 'B'
WHERE p1.product_id = 'A'
A

你可能感兴趣的:(大数据,跨境电商,大数据面试,数据分析,AB测试,数据归因,数据挖掘)