подсчет строк с одинаковым временем
на машине есть датчик движения, каждую секунду он считывает данные о местоположении и вносит их в таблицу, нужно посчитать сколько раз машина была в одной конкретной точке за день, объединив множество значений за минуту в одно. Подскажите пожалуйста
Ответы (2 шт):
Как-то так можно, если я верно понял задачу https://www.db-fiddle.com/f/87PAeff1YTmVp6M4C9wxdf/0
Если надо разбиение не по минутам, а по дням - измените формат в to_char с DD Mon YYYY HH24:MI на DD Mon YYYY
Ну и дальше можно накидывать свои условия для выборки по желанию
Может быть вам подойдёт такой вариант:
Create temp table tmpTable as
select addr,zone_id,DATE_PART('hour',time)*100+DATE_PART('minute',time) as IntTime from sometable where time between '2022.04.04' and '2022.04.05';
select addr,zone_id,IntTime,count(*) as cnt from tmpTable group by addr,zone_id,IntTime order by IntTime;
Здесь мы делаем следующее: выбираем записи, где время интерпретируем как значение часов умножить на 100, плюс количество минут, а потом их группируем с подсчётом.