Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разгруппировать периоды по часам, Разбить периоды на часы 
V
    Опции темы
lancelot555
  Дата 16.12.2015, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 19.2.2005

Репутация: нет
Всего: нет



Имеем таблицу вида:
id (int), date_from (date_time), date_to (date_time), value (float)
Уникальный ключ:  id+date_from
Периоды в этой таблице не пересекаются, интервалы 1 час
Пример строк:
1|2015-12-13 09:00:00|2015-12-14 08:59:59|1.34
1|2015-12-14 09:00:00|2015-12-14 23:59:59|1.45
2|2015-12-14 09:00:00|2015-12-14 11:59:59|1.05
3|2015-12-14 00:00:00|2015-12-14 23:59:59|1.3

Нужно построить дополнительную таблицу, где указанные периоды из первой таблицы будут разбиты на интервалы (1 час)
Для указанного примера итоговой таблицей будет:
1|2015-12-13 09:00:00|2015-12-13 09:59:59|1.34
1|2015-12-13 10:00:00|2015-12-13 10:59:59|1.34
1|2015-12-13 11:00:00|2015-12-13 11:59:59|1.34
1|2015-12-13 12:00:00|2015-12-13 12:59:59|1.34
1|2015-12-13 13:00:00|2015-12-13 13:59:59|1.34
1|2015-12-13 14:00:00|2015-12-13 14:59:59|1.34
1|2015-12-13 15:00:00|2015-12-13 15:59:59|1.34
1|2015-12-13 16:00:00|2015-12-13 16:59:59|1.34
1|2015-12-13 17:00:00|2015-12-13 17:59:59|1.34
1|2015-12-13 18:00:00|2015-12-13 18:59:59|1.34
1|2015-12-13 19:00:00|2015-12-13 19:59:59|1.34
1|2015-12-13 20:00:00|2015-12-13 20:59:59|1.34
1|2015-12-13 21:00:00|2015-12-13 21:59:59|1.34
1|2015-12-13 22:00:00|2015-12-13 22:59:59|1.34
1|2015-12-13 23:00:00|2015-12-13 23:59:59|1.34
1|2015-12-14 00:00:00|2015-12-14 00:59:59|1.34
1|2015-12-14 01:00:00|2015-12-14 01:59:59|1.34
1|2015-12-14 02:00:00|2015-12-14 02:59:59|1.34
1|2015-12-14 03:00:00|2015-12-14 03:59:59|1.34
1|2015-12-14 04:00:00|2015-12-14 04:59:59|1.34
1|2015-12-14 05:00:00|2015-12-14 05:59:59|1.34
1|2015-12-14 06:00:00|2015-12-14 06:59:59|1.34
1|2015-12-14 07:00:00|2015-12-14 07:59:59|1.34
1|2015-12-14 08:00:00|2015-12-14 08:59:59|1.34
1|2015-12-14 09:00:00|2015-12-14 09:59:59|1.45
1|2015-12-14 10:00:00|2015-12-14 10:59:59|1.45
1|2015-12-14 11:00:00|2015-12-14 11:59:59|1.45
1|2015-12-14 12:00:00|2015-12-14 12:59:59|1.45
1|2015-12-14 13:00:00|2015-12-14 13:59:59|1.45
1|2015-12-14 14:00:00|2015-12-14 14:59:59|1.45
1|2015-12-14 15:00:00|2015-12-14 15:59:59|1.45
1|2015-12-14 16:00:00|2015-12-14 16:59:59|1.45
1|2015-12-14 17:00:00|2015-12-14 17:59:59|1.45
1|2015-12-14 18:00:00|2015-12-14 18:59:59|1.45
1|2015-12-14 19:00:00|2015-12-14 19:59:59|1.45
1|2015-12-14 20:00:00|2015-12-14 20:59:59|1.45
1|2015-12-14 21:00:00|2015-12-14 21:59:59|1.45
1|2015-12-14 22:00:00|2015-12-14 22:59:59|1.45
1|2015-12-14 23:00:00|2015-12-14 23:59:59|1.45
и так далее .....

Как построить вторую таблицу оптимально на SQL ?
--------------------
Hи что так не поpтит цель, как попадание! =)
PM MAIL   Вверх
lancelot555
  Дата 16.12.2015, 01:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 19.2.2005

Репутация: нет
Всего: нет



Нашел решение сам:
создаем вспомогательную таблицу со списком всех нужных часов, далее
запрос вида
Код

INSERT INTO table2
            SELECT id,hour,ADDTIME(hour, '0:59:59'),value
            FROM table1
            JOIN hours ON (hour BETWEEN date_from AND date_to)

--------------------
Hи что так не поpтит цель, как попадание! =)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0779 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.