sql - How to get users that purchased items ONLY in a specific time period (MySQL Database) -
i have table contains purchased items.
i need check users purchased items in specific period of time (say between 2013-03-21 2013-04-21) , never purchased after that.
i can select users purchased items in period of time, don't know how filter users never purchased after that...
select `userid`, `email` my_table `date` between '2013-03-21' , '2013-04-21' group `userid`
give try
select user_id my_table purchase_date >= '2012-05-01' --your_start_date group user_id having max(purchase_date) <= '2012-06-01'; --your_end_date it works getting records >= start date, groups resultset user_id , finds max purchase date every user. max purchase date should <=end date. since query not use join/inner query faster
test data
create table user_purchases(user_id int, purchase_date date); insert user_purchases values (1, '2012-05-01'); insert user_purchases values (2, '2012-05-06'); insert user_purchases values (3, '2012-05-20'); insert user_purchases values (4, '2012-06-01'); insert user_purchases values (4, '2012-09-06'); insert user_purchases values (1, '2012-09-06'); output
| user_id | ----------- | 2 | | 3 |
Comments
Post a Comment