Denis Опубликовано 28 июля, 2011 Поделиться Опубликовано 28 июля, 2011 SELECT DATEADD(mi, - datepart(mi, convert(smalldatetime, SimpleTime)) & 1, convert(smalldatetime, SimpleTime)) as SimpleTime, avg(Chann06) FROM Test.dbo.Data_217807_8_0_8 where SimpleTime between '20110628 14:00:00.000' and '20110628 16:00:00.000' group by DATEADD(mi, - datepart(mi, convert(smalldatetime, SimpleTime)) & 1, convert(smalldatetime, SimpleTime)) order by 1 Этот запрос выбирает данные из заданного диапазона и выводи среднее значение каждые две минуты. SELECT convert(varchar(13), [simpleTime], 120) + ':00' + ':00', avg(Chann06) FROM Test.dbo.Data_217807_8_0_8 where SimpleTime between '20110628 14:00:00.000' and '20110628 16:00:00.000' group by convert(varchar(13), [simpleTime], 120) + ':00' + ':00' Этот запрос делает тоже самое только он почасовой. А как сделать по минутыный вывод с теме же условиями что и в двух предидуших запросах(в БД записи пишутся каждую секунду. тоесть надо посчитать среднее значение по минутно в заданном диапазоне). Ссылка на комментарий Поделиться на другие сайты Поделиться
htc Опубликовано 29 июля, 2011 Поделиться Опубликовано 29 июля, 2011 Как как? select avg(Chann06) as Chann06, min(date) as date from table where date > begin_period and date < end_period group by date_trunc('minute',date); Это для psql, для своего делфи ебитесь сами. И читатните вот это: http://www.sql.ru/docs/sql/u_sql/index.shtml И открою тайну если в этом заросе поменять только 'minute' на 'hour','day','second' то он будет группировать по часам\дням\секундам и т.д. Ссылка на комментарий Поделиться на другие сайты Поделиться
Denis Опубликовано 29 июля, 2011 Автор Поделиться Опубликовано 29 июля, 2011 В первом запросе меняем mi на ss. И получаем нужный результат. В итоге ответил сам на свой вапрос. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Заархивировано
Эта тема находится в архиве и закрыта для дальнейших ответов.