Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL - запрос - среднее арифметическое  [new]
IvanN
Member

Откуда: Ростов н/Д
Сообщений: 2038
Всем доброго времени суток

Есть табличка, в ней две колонки - дата-время и значение. каждую минуту туда заносится новая запись, соответственно с временем и числовым значением.

Подскажите пожалуйста. как получить среднее арифметическое для каждого дня, входящего в определенный временной промежуток?

Заранее спасибо.
9 янв 10, 23:59    [8160878]     Ответить | Цитировать Сообщить модератору
 Re: SQL - запрос - среднее арифметическое  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36803
group by + avg
10 янв 10, 00:14    [8160908]     Ответить | Цитировать Сообщить модератору
 Re: SQL - запрос - среднее арифметическое  [new]
IvanN
Member

Откуда: Ростов н/Д
Сообщений: 2038
Гавриленко Сергей Алексеевич
group by + avg

а Вы не подскажете, как работать с датами, как выделить записи, который принадлежат к одним суткам в периоде? с циклом нужно делать? или есть другой способ?
10 янв 10, 00:18    [8160918]     Ответить | Цитировать Сообщить модератору
 Re: SQL - запрос - среднее арифметическое  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
AVG(...) OVER(PARTITION BY ...) ?
10 янв 10, 00:43    [8160961]     Ответить | Цитировать Сообщить модератору
 Re: SQL - запрос - среднее арифметическое  [new]
Ozzy-Osbourne
Member

Откуда: Balashikha
Сообщений: 139
IvanN,

declare @t table(dt datetime, val int)
insert @t select '20090525 15:17:19',877
insert @t select '20090525 17:27:19',918
insert @t select '20090525 19:37:23',617
insert @t select '20090526 08:21:09',851
insert @t select '20090526 19:07:49',552
insert @t select '20090526 23:59:59',274
insert @t select '20090527 00:00:00',374
insert @t select '20090527 00:00:01',119
insert @t select '20090527 23:59:59',647
select ds=convert(char(8),dt,112),avgVal=avg(val*1.)
from @t
group by convert(char(8),dt,112)
10 янв 10, 00:44    [8160963]     Ответить | Цитировать Сообщить модератору
 Re: SQL - запрос - среднее арифметическое  [new]
IvanN
Member

Откуда: Ростов н/Д
Сообщений: 2038
Всем огромное спасибо!!! :)
10 янв 10, 12:17    [8161433]     Ответить | Цитировать Сообщить модератору
 Re: SQL - запрос - среднее арифметическое  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Чего-то я не понимаю...
Значит, так. Имеются значения некоторого физического параметра в некоторые моменты времени.
Причём эти моменты неэквидистантны, т.е. параметр имеет указанные значения в течение разных
промежутков времени
. Как же можно считать среднее, просто суммируя и деля на количество
измерений?
AVG тут не годится! IMHO

Как известно, среднее значение параметра V(t) за период времени от t1 до t2 можно вычислить так:

В таблице хранятся дискретные замеры, - значит, надо интеграл заменить на интегральную сумму,
считая, что с момента одного замера до следующего замера значение параметра постоянно.

Может, я, конечно, ошибаюсь...
10 янв 10, 15:28    [8161888]     Ответить | Цитировать Сообщить модератору
 Re: SQL - запрос - среднее арифметическое  [new]
IvanN
Member

Откуда: Ростов н/Д
Сообщений: 2038
iap, неееее, это слишком точный результат будет

у меня замер идет каждую минуту, т.е. за сутки значений немеренно. За несколько месяцев накопилось порядка нескольких десятков тысяч записей. А колебания значения (температуры какой-то фиговинки) не такие большие идут за сутки. При этом, мне нужно получить общую тенденцию, а не решать уравнения графическим способом
10 янв 10, 15:35    [8161910]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить