I searched for this, but all of the similar questions and answers are just different so as not to work.
I have a table with the following fields: person, thing, purdate. A new entry is introduced when a person buys each new item.
I want to count the consecutive months that a person bought any "thing" (thing01 or thing02, she is not a mater). If there is a gap in consecutive days, then the count should begin.
With the attached data, I want to end with this:
| Person | Consec Days | | person_01 | 3 | | person_02 | 3 | | person_02 | 2 |
I know that I can get an excellent list of people, extract (year_month from purdate) - which I made in this SQLFIDDLE - but I'm not sure how then to count only sequential records and start from the break (as in my data, where person_02 breaks between March and mayem.)
Here are the data:
create table records ( person varchar(32) not null, thing varchar(32) not null, purdate datetime not null ); insert into records (person, thing, purdate) values ('person_01', 'thing01', '2014-01-02'), ('person_01', 'thing02', '2014-01-02'), ('person_01', 'thing02', '2014-02-27'), ('person_01', 'thing02', '2014-03-27'), ('person_02', 'thing02', '2014-01-28'), ('person_02', 'thing01', '2014-02-28'), ('person_02', 'thing02', '2014-03-28'), ('person_02', 'thing02', '2014-05-29'), ('person_02', 'thing02', '2014-06-29') ;