![]() |
|
Модераторы: skyboy |
![]()
|
|
| bernex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 19.9.2007 Репутация: нет Всего: нет |
Есть таблица MySQL:
Каждую секунду кидаются значения. В одной такой таблице 20 миллионов записей. Задача: Выбрать набор значений одного типа (TYPE = 1), с усредненными значениями за час или минуту. Также в строке должен остаться DATE для определения минуты или часа? Прошу помочь... спасибо... Это сообщение отредактировал(а) bernex - 5.9.2010, 16:02 |
|||
|
||||
| Anark1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 622 Регистрация: 15.12.2006 Где: RF -> Moscow Репутация: нет Всего: 11 |
Можно, например написать функцию извлекающую из DATE часы или минуты, то есть HOUR(DATE) или MIN(DATE),
соответствующие запросы:
Придумал навскидку, не проверял, но идея такова. Это сообщение отредактировал(а) Anark1 - 5.9.2010, 20:20 |
|||
|
||||
| bernex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 19.9.2007 Репутация: нет Всего: нет |
data там int в ввиде цифры timestamp в формате int
будет работать HOUR? |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
rtfm AVG одинаковые часы разных суток схлопнутся в одну группу - ничо так? Это сообщение отредактировал(а) Zloxa - 5.9.2010, 20:45 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Anark1 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 622 Регистрация: 15.12.2006 Где: RF -> Moscow Репутация: нет Всего: 11 |
Добавить функцию DAY и делать группировку по двум значениям или придумать что-нибудь более изощренное, то что выполняло бы нужную группировку. У меня нет под рукой mysql, но можно попробовать что-нибудь вроде:
CAST(TIMESTAMP AS DATETIME) работает нормально на MS SQL, наверное на mysql тоже. Вообще тут полно функций по работе с датой и временем. http://dev.mysql.com/doc/refman/5.1/en/dat...unction_extract
Нужно определить функцию HOUR. Такое решение подразумевает определение UDF. Читайте про user-defined functions. Или см. выше. P.S. Кстати, по поводу AVERAGE... так может быть автор хотя бы поймет о чем речь. ;) Это сообщение отредактировал(а) Anark1 - 5.9.2010, 22:30 |
||||
|
|||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
оп... проглядел.
ничетак, что timestamp в MS Sql и в MySQL суть разные вещи и в MS таймстамп в дату кастовать - абсурд?
Ты ведь сам привел ссылку с фунциями даты, не ужели не удосужился сам ее и прочитать. Тогда, быть может ты понял бы о чем толкует ТС. Anark1, дружище, ты вот если сам не в теме, других с понтолыку не сбивай пожалуйста. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Anark1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 622 Регистрация: 15.12.2006 Где: RF -> Moscow Репутация: нет Всего: 11 |
Zloxa,
если у человека возникают такие вопросы когда он работает с timestamp с базой mysql, не знает функций и не знает как составить структуру запроса (иначе он, наверное, формулировал бы вопрос по-другому), то по-моему нет ничего плохого в моем желании ему помочь. Накидал человеку идей, ссылок, у него есть возможность почитать и разобраться. Кстати, спасибо за замечания, сам учту это, хоть наверное и не скоро придется что-нибудь делать с mysql. Буду рад прочитать пояснение. Да и есть такой момент, что ты сам пока что ничего не предложил для автора. Или это у тебя такой стиль комментариев? Недаром же столько в "Флейме" набил И манера общения интересная, способ самовыражения что-ли? P.S. Не забудь поставить "-3" этому моему посту Это сообщение отредактировал(а) Anark1 - 5.9.2010, 23:13 |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
У меня не хватает компетенций помочь автору. Потому и молчу. Однако у меня хватает компетенций понять что ты, как и я не в теме. И вижу что тебя не гнушает выдавать за цимес отрыжку так и не переваренного тобой продукта. Я не могу оценить способен ли ТС самостоятельно определить качество твоих советов, потому помогаю ему, комментируя и оценивая твои посты. да да, обязательно почитай в MSDN про timestamp. Или мне потрудиться тебе сцылочку подогнать? -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: нет Всего: 39 |
бррр, неправильно понял ТС.
Это сообщение отредактировал(а) djamshud - 6.9.2010, 12:17 -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
djamshud, ему надо сгруппироваться с гранулярностью по часу или минуты и посчитать среднее.
если бы вместо таймстампа было бы просто целое число, обозначающее количество секунд с начала чего та это было бы чтото вроде:
но я не знаю можно ли так работать с таймстампом. Еще как вариант - привести к строке по формату вроде 'DDMMYYYYHHMM' и группироваться по нему. Но что есть реальное тру - я хз. Функции работы с датами в разных диалектах столь специфичны..... Это сообщение отредактировал(а) Zloxa - 6.9.2010, 12:37 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Anark1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 622 Регистрация: 15.12.2006 Где: RF -> Moscow Репутация: нет Всего: 11 |
Zloxa, товарищ, да ты тот еще шутник
Начнем с того, что я нигде не писал, что варианты, которые я предлагаю гарантированно будут работать, ладно ты такой классный утер мне нос, но сам ты ничем не лучше. Хотя бы даже процитирую тебя следуя твоей же логике, на кой черт писать тогда то что ты обозначил в предыдущем посте, какие-то варианты? Не знаешь - не пиши. Как насчет создать тему во "Флейме" и повоевать сам с собой? Тебе этого, похоже, не хватает. По поводу timestamp, я тогда не поленился, создал табличку с полем timestamp, забил ее данными, посмотрел CAST. Даты разумеется вышли абсолютно левые, но даже в таком виде это работало (получался нужный вид и не было ошибок), почему бы автору в таком случае не попробовать этот вариант на mysql? Я еще чисто ради интереса просмотрел одним глазом некоторые темы, в которых ты поучаствовал А перлы вроде заставляют долго и с улыбкой вспоминать об этом. Удачи тебе |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
-------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: нет Всего: 39 |
Zloxa,
>если бы вместо таймстампа было бы просто целое число, обозначающее количество секунд с начала чего та это было бы чтото вроде: UNIX_TIMESTAMP(timestamp) дает timestamp в православном отсчете секунд с 1970-го года. Я когда-то воротил софтинку, которая делала в том числе и такие выборки. Сейчас найду и попробую раскурить ее конфиги. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: нет Всего: 39 |
Блин, фэйл. Нашел тот конфиг, в комментарии к нему прочитал, что пытался написать правильный запрос, но гугл предлагал креативы с подфункциями и джоинами - я не понял, как это, и в том же конфиге зафигачил процедурку group_by_interval, которая и занималась агрегацией по временным интервалам, благо записей было всего несколько десятков тысяч. В итоге каша выглядела так:
Так что я присоединяюсь к вопросу ТС, мне тоже интересно, как это сделать правильно. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| bernex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 19.9.2007 Репутация: нет Всего: нет |
Сорри всем, табличка все же постгрес....
Это сообщение отредактировал(а) bernex - 7.9.2010, 20:25 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |