powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Запрос (усреднение группировка и ограничение по выборке для каждого поля)
8 сообщений из 8, страница 1 из 1
Запрос (усреднение группировка и ограничение по выборке для каждого поля)
    #39626048
kaktus1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Есть таблица:

DTVRBFZ1...Z3204.04.201823:49:329326...12504.04.201823:50:083316...41504.04.201823:51:419415...36504.04.201823:53:129621...54604.04.201823:54:519999...25404.04.201823:58:503625...25604.04.201823:59:229317...85405.04.201800:00:559314...24505.04.201800:02:319341...63505.04.201800:03:399357...42505.04.201800:08:413345...74505.04.201800:09:159318...15405.04.201800:10:499381...45805.04.201800:12:203329...75405.04.201800:14:589342...125

Необходимо по каждому полю Zi [32 поля] в разрезе часа получить:
1. среднее значение из значений в диапазоне (100,900).
2. расчетный коэффициент Ki, который представляет собой отношение кол-ва значений Zi которые попали в усреднение (диапазон 100-900) к кол-ву всех значений Zi в часе.
Рассматриваются только записи с определенным значением столбца BF, например 9.

Т.е. на выходе получается таблица вида

DT_HOURBFZ1K1...Z32K3204.04.2018 23:0094200.8...4291.005.04.2018 00:0093421.0...3401.0

Задача реализована в PSQL :

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
for
  select dt + cast (lpad(extract(hour from vr),2,'0') || ':00:00' as time) as DT_HOUR
    from TZ
    where BF = 9
    group by DT_HOUR
    into :DT_HOUR
do
  begin
    -- для каждой точки Zi, часа DT_HOUR отдельным запросом вычисляется avg(Zi) и Кi, Zi between 100 and 900
    ...
    suspend;
  end


Подскажите, как реализовать данную задачу запросом.
Спасибо!
...
Рейтинг: 0 / 0
Запрос (усреднение группировка и ограничение по выборке для каждого поля)
    #39626059
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaktus1983Подскажите, как реализовать данную задачу запросом.

Использовать CASE внутри AVG().
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запрос (усреднение группировка и ограничение по выборке для каждого поля)
    #39626060
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaktus1983, обернуть FOR в EXECUTE BLOCK?
...
Рейтинг: 0 / 0
Запрос (усреднение группировка и ограничение по выборке для каждого поля)
    #39626061
kaktus1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kaktus1983,
Забыл уточнить, FB 2.5
...
Рейтинг: 0 / 0
Запрос (усреднение группировка и ограничение по выборке для каждого поля)
    #39626064
kaktus1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_dev,
Вариант, хотя по сути ничего не меняется, разве что не надо SP за ранее прописывать.
Я подозреваю что мой вариант далеко не самый рациональный.
...
Рейтинг: 0 / 0
Запрос (усреднение группировка и ограничение по выборке для каждого поля)
    #39626066
kaktus1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovИспользовать CASE внутри AVG().

Не понял, если Вас не затруднит, опишите алгоритм чуть более подробней
...
Рейтинг: 0 / 0
Запрос (усреднение группировка и ограничение по выборке для каждого поля)
    #39626078
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaktus1983Не понял

Какое слово ты не понял?
Код: sql
1.
2.
avg(case Z1 between 100 and 900 then Z1), count(case Z1 between 100 and 900 then 
Z1)/count(*)


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запрос (усреднение группировка и ограничение по выборке для каждого поля)
    #39626557
kaktus1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
Спасибо, разобрался.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Запрос (усреднение группировка и ограничение по выборке для каждого поля)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]