@MasterCopipaster

Как сделать групировку по правилу n+1 в mysql?

Как подсчитать кол-во записей не линейных по дате?

date |name |
-----------------|----------|
28.08.20 13:52:53|date1 |
28.08.20 13:52:53|date1 |
28.08.20 13:52:54|date1 |
28.08.20 13:52:55|date1 |
28.08.20 13:52:55|date2 |
28.08.20 13:52:53|date2 |
28.08.20 13:52:56|date1 |

Есть пример такой таблицы, мы можем видить что сначала у name дата увеличивается по правилу n+1 тоесть каждая следующая дата больше на 1с как мне подсчитать кол-во звписей где дата увеличивается по правилу n+1
Тоесть на примере этой таблицы в результате я хочу получить что то такое:
date1 | 4
date2 | 2
date1 | 1
Возможно ли это средствами mysql? или придется скрипт писать?
  • Вопрос задан
  • 46 просмотров
Пригласить эксперта
Ответы на вопрос 1
Не знаю, оно ли, но у меня первая идея была сделать это так:
SELECT
    date(event_time) as event_date
    , extract(HOUR_MINUTE from event_time) as hour_min
    , extract(SECOND from event_time) as sec
    , count(*) as cnt
FROM table1
where event_time is not null
group by date(event_time), extract(HOUR_MINUTE from event_time), extract(SECOND from event_time);


Затем попроще:
SELECT
	`event_time` - INTERVAL EXTRACT(SECOND FROM `event_time`) SECOND as no_sec
    , count(*) as cnt
FROM table1
group by `event_time` - INTERVAL EXTRACT(SECOND FROM `event_time`) SECOND
order by event_time;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы