【高频SQL (进阶版)】1398.购买了产品A和产品B却没有购买产品C的顾客Plus

思路:

思路1:买了A,买了B,没有买C。

按人分组统计,A的数>0, B的数>0 ,C的数 = 0。

思路2:反过来查,用户id。在产品表里,产品名为A,为B的用户列表里,但是不在产品表里,产品为C的用户列表里。

错误答案:

select   c.customer_id,c.customer_name,o.product_name  from Customers c left join Orders o on c.customer_id = o.customer_id

group by c.customer_id ,c.customer_name,o.product_name

having sum(if(o.product_name = 'A',1,0)) > 0 and sum(if(o.product_name = 'B',1,0)) > 0 and sum(if(o.product_name = 'C',1,0)) = 0

其实这一句SQL执行(select   c.customer_id,c.customer_name,o.product_name  from Customers c left join Orders o on c.customer_id = o.customer_id

group by c.customer_id ,c.customer_name,o.product_name),得到的结果是:

如果再加上 having sum(if(o.product_name = 'A',1,0)) > 0 and sum(if(o.product_name = 'B',1,0)) > 0 and sum(if(o.product_name = 'C',1,0)) = 0 

结果是空的。

因为它是对每一行的记录,去叠加执行这些条件(等于A,等于B,不等于C),比较的。

很显然不可能有一行记录,同时满足等于A,等于B,不等于C

除非,把product_name 这列 隐藏。根据customer_id 和customer_name去分组,这样他们的product_name 就会被聚合起来,虽然我们看不见 product_name ,但是我们却可以对它进行统计。好神奇~!

参考答案:

select   c.customer_id,c.customer_name  from Customers c left join Orders o on c.customer_id = o.customer_id

group by c.customer_id ,c.customer_name

having sum(if(o.product_name = 'A',1,0)) > 0 and sum(if(o.product_name = 'B',1,0)) > 0 and sum(if(o.product_name = 'C',1,0)) = 0

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
假设我们有一个电商平台,销售以下五种产品:手机、电脑、平板、耳机和鼠标。我们想要分析客户购买这些产品的频次以及它们之间的关联性。 首先,我们需要从电商平台的数据库中提取订单信息,并进行数据预处理,包括去重、筛选、填充空值等操作。最终,我们得到了一个包含订单编号、客户编号、产品名称、购买数量、购买时间等字段的数据表。 接下来,我们可以使用 Power BI 中的可视化工具,如表格、柱状图、散点图等,来展示客户购买频次和产品之间的关系。以下是一些可能的分析结果: 1. 客户购买频次分析:我们可以通过对客户编号进行分组,统计每个客户的订单数量来分析客户购买频次。例如,我们可以创建一个柱状图,横轴是客户编号,纵轴是订单数量,每个柱子代表一个客户的购买量。通过这个图表,我们可以发现哪些客户是高频购买者,他们对我们的产品有着更高的忠诚度,也可以针对这些客户推出更有针对性的促销活动。 2. 产品关联分析:我们可以通过计算不同产品之间的共现频次来分析它们之间的关联性。例如,我们可以创建一个散点图,横轴和纵轴分别是产品名称,每个点代表两个产品之间的共现次数。通过这个图表,我们可以发现哪些产品之间的关联性比较紧密,例如手机和耳机、电脑和平板,这些关联性可以帮助我们进行跨品类销售,推出更有吸引力的套餐和组合优惠。 3. 产品购买趋势分析:我们可以通过时间维度来分析客户对不同产品购买趋势。例如,我们可以创建一个折线图,横轴是时间,纵轴是购买数量,每条线代表一个产品购买量变化。通过这个图表,我们可以发现某些产品的销售量随着时间的推移呈现出明显的波动,例如在特定的促销活动或节假日期间,某些产品的销售量会明显增加,我们可以根据这些信息来制定更加精准的促销策略。 综上所述,通过 Power BI 的可视化分析工具,我们可以对客户购买频次和产品关联性进行深入分析,从而帮助我们更好地了解客户需求和产品销售情况,制定更加有效的营销策略。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员大雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值