LINUX.ORG.RU

составить запрос mysql

 ,


0

1

У меня таблица есть некая `table` со структурой `values` (int) и `date` (unixtime)
Данные заполняются рандомно могут с перерывами от секунд до часов
На данный момент информации хранится примерно на 3 месяца
Как составить запрос чтобы он вывел на каждый день сколько принимает значение `values` - можно среднее можно любое в течении дня



Последнее исправление: samedovr (всего исправлений: 1)

В этом секретном месте можно почитать про функции работы с датой-временем. Там же есть и возможность преобразований из unixtime и обратно.

В условии WHERE пишешь выражение «все что больше нижней границы и меньше верхней границы периода» (у тебя, вероятно, это сутки).

WHERE date > [нижняя граница] AND date < [верхняя граница]

В секции SELECT определяешь SUM(values) или COUNT(values) или что там еще надо.

valich ★★★
()
Ответ на: комментарий от Kalashnikov

Только если таймстамп полный, секунды и часы неадо будет отбросить.

SELECT AVG(`values`)  from `table` GROUP BY (`date` - `date` DIV (1000*60*60*24));
Вроде так.

Kalashnikov ★★★
()

спасибо. перегружен ужасно голова не думает уже

samedovr
() автор топика

кажется задача не правильно поставлена. нужно не всего найти за один день статистику а вывести за три месяца каждый день сколько в среднем было.
будет не одна запись а примерно 90
запрос

SELECT AVG(`values`)  from `table` GROUP BY
выдаст одну запись

samedovr
() автор топика

решил

SELECT FROM_UNIXTIME(  `date` ,  "%Y-%m-%d"  ) AS  `dates` , AVG(  `values` ) as `values`
FROM  `table`  
GROUP BY  `dates` 

samedovr
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.