powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как сгруппировать данные
7 сообщений из 7, страница 1 из 1
Как сгруппировать данные
    #32397397
pleon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос такой: есть таблица с полями Time, In, Out. Записи туда заносятся каждые 5 минут.
Возможно ли суммировать поля In и Out за определенный период с интервалом 30 мин или 2 часа одним запросом. Заранее благодарен за ответ.
...
Рейтинг: 0 / 0
Как сгруппировать данные
    #32397414
Diablo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select count(table.in), count(table.out)
from table
where time between время начала and время конца

формат времени может быть такой yyyymmddhhmmss
...
Рейтинг: 0 / 0
Как сгруппировать данные
    #32397419
skol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select from_unixtime(floor(unix_timestamp(Time)/1800)*1800) as period,
sum(in), sum(out)
from table1
group by 1


Соответственно 1800 это для 30 мин, для 2 часов будет 7200 (т.е. кол-во секунд)

В наборе для period 2004-02-03 12:00 будут указанны суммы для периода
2004-02-03 12:00:00 - 2004-02-03 12:29:59
...
Рейтинг: 0 / 0
Как сгруппировать данные
    #32397421
skol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Diablo

Вопрос был про группировку по интервалам :)
...
Рейтинг: 0 / 0
Как сгруппировать данные
    #32397434
pleon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно я некорректно сформировал вопрос.
таблица table1
TekTime In Out
2004-02-04 11:00:00 33333 11111
2004-02-04 10:55:00 33333 11111
2004-02-04 10:50:00 33333 11111
..................
2004-01-04 11:00:00 33333 11111

необходимо получить суммы по In, Out за период с 2004-01-29 11:00:00 по
2004-02-04 11:00:00 с интервалом 30 мин, т.е.

2004-02-04 11:00:00 199998 66666
2004-02-04 10:30:00 199998 66666
2004-02-04 10:00:00 199998 66666
..................
2004-01-29 11:30:00 199998 66666
...
Рейтинг: 0 / 0
Как сгруппировать данные
    #32397444
skol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 pleon

Ну дык этот запрос и делает что тебе надо, ну where еще добавь

select from_unixtime(floor(unix_timestamp(Time)/1800)*1800) as period,
sum(in), sum(out)
from table1
where Time between '2004-01-29 11:00:00' and '2004-02-04 10:59:59'
group by 1
...
Рейтинг: 0 / 0
Как сгруппировать данные
    #32397448
pleon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to skol - премного благодарен
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как сгруппировать данные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]