1581. 进店却未进行过交易的顾客
问题链接
思路分析
有一些顾客可能光顾了购物中心但没有进行交易。请你编写一个解决方案,来查找这些顾客的 ID ,以及他们只光顾不交易的次数。返回以 任何顺序 排序的结果表。
要求:
获取只浏览不消费的顾客次数
分析
数据在此:
有visit_id在visits表内,但在Transactions表内没有对应数据,即没有消费
采用左连接,连接条件为v.visit_id = t.visit_id
连接过后的数据表如下:
这里我们需要筛选出amount为null的数据,即只浏览不消费的记录.过滤后的数据如下:
最后我们需要统计同一个costomer_id下只浏览不消费的次数,
按照costomer_id分组==>GROUP BY v.customer_id
统计同一个costomer_id次数 ==>COUNT(v.customer_id) AS count_no_trans
最终的结果如下:
完整的sql代码
SELECT v.customer_id,COUNT(v.customer_id) AS count_no_trans
FROM Visits v
LEFT JOIN Transactions t ON v.visit_id = t.visit_id
WHERE t.visit_id IS NULL
GROUP BY v.customer_id
;