mysql - Group datetime within range -
i have troubles in grouping datasets. here query , query result.
select count(*),salarie_id, created_at enregistrement group salarie_id, created_at 
my point group similar created_at rows, in interval of +/- 3 sec. didn't manage it, in using interval, in such criterias having , where ... between.
how can group these rows get, example 36 (33+3) in count result, shown in image ?
didn't found suitable solution... let me know if want additional information.
update 1 : looks @fancypants solution on right way.
select count(*),salarie_id, date_format(created_at, concat('%y-%m-%d %h:%i:', left(right(created_at, 2), 1), right(created_at, 1) % 3)) 'date' enregistrement group salarie_id, date_format(created_at, concat('%y-%m-%d %h:%i:', left(right(created_at, 2), 1), right(created_at, 1) % 3)) 
select count(*),salarie_id, created_at enregistrement group salarie_id, date_format(created_at, concat('%y-%m-%d %h:%i:', left(right(created_at, 2), 1), case when right(created_at, 1) between 1 , 4 0 when right(created_at, 1) between 5 , 7 1 else 2 end )); you can use date_format() bring datetime/timestamp column in shapes. in case specify format with
concat('%y-%m-%d %h:%i:', left(right(created_at, 2), 1), right(created_at, 1) % 3)) is, take year, month, day, hour, minute. concatenate date format string power of ten of seconds.
for example have seconds:
21 33 36 40 then take 2, 3, 3 , 4 left(right(created_at, 2), 1). 1, 3, 6 , 0 right(created_at, 1). have put them self-defined groups case when.
Comments
Post a Comment