mysql用户购买_如何获取仅在特定时间段内购买商品的用户(MySQL数据库)

我有一张包含所有购买商品的表格.

我需要检查哪些用户在特定时间段(例如2013-03-21至2013-04-21之间)购买了商品,之后从未购买任何商品.

我可以选择在那段时间内购买商品的用户,但我不知道如何过滤那些从未购买任何商品的用户……

SELECT `userId`, `email` FROM my_table

WHERE `date` BETWEEN '2013-03-21' AND '2013-04-21' GROUP BY `userId`

解决方法:

试一试

SELECT

user_id

FROM

my_table

WHERE

purchase_date >= '2012-05-01' --your_start_date

GROUP BY

user_id

HAVING

max(purchase_date) <= '2012-06-01'; --your_end_date

它的工作原理是获取所有记录> =开始日期,按user_id对结果集进行分组,然后找到每个用户的最大购买日期.最大购买日期应为< =结束日期.由于此查询不使用join / inner查询,因此可能更快

测试数据

CREATE table user_purchases(user_id int, purchase_date date);

insert into user_purchases values (1, '2012-05-01');

insert into user_purchases values (2, '2012-05-06'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值