Wake of Gods Forum | Форум Во Имя Богов

Full Version: SQL
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Знаю, что мои темы на фоне остальных )))) Но просто тут душевная обстановка. Тут проще, чем на профильных форумах. Вдруг и спецы в SQL найдутся.
В общем вопрос.

Есть таблица в которой есть дата (DATETIME в формате TTimeStamp) и значение (VALUE integer). Каждые сутки в таблицу добавляется 24 записи (по одной записи каждый час ровно в начале часа, т.е. дата имеет формат dd.mm.yyyy hh:00). Каждому значению даты соответствует свое значение VALUE. Необходимо для заданного промежутка времени (например с 8:00 до 11:00) в каждом дне выбрать минимальное значение VALUE, и если вдруг таких значений несколько, то оставить одно, которое встречается первым

Для одного дня проблем нет. Можно конечно в цикле пройтись по всем дням и через UNION сделать один большой запрос. Но что-то мне подсказывает, что есть другой способ 96. Потому что при выборке в 100к записей делать запрос на 1000к строк такое себе мероприятие.

Спасибо заранее, если найдется ответ.
BJ Wrote:По-любому есть функция minimum 102 через неё выбираешь тот самый минимум за каждый день и вставляешь через insert куда-нибудь в новую таблицу 102
Code:
SELECT date(event_date) as the_day, min(value) as min_value FROM `events` WHERE hour(event_date) BETWEEN 8 and 11 GROUP BY the_day
Reference URL's