Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Запрос с расчетом


Автор: Error202 28.7.2016, 13:40
Здравствуйте!

Есть таблица
Код

CREATE TABLE "oqv" (
    `id`    INTEGER PRIMARY KEY AUTOINCREMENT,
    `object_id`    INTEGER,
    `type_id`    INTEGER,
    `view_id`    INTEGER,
    `cnt`    INTEGER DEFAULT 0
)


Явление (object_id), Признак (type_id), Наблюдение (view_id) - бывает только 1,2,3 и 4, Сколько раз наблюдалось (cnt)


Входные данные: object_id
V1,V2,V3,V4 - конкретное наблюдение по признаку
V - сумма конкретных наблюдений признака

Задача найти признак у которого минимальный

CNTV1     CNTV2      CNTV3     CNTV4
------   *   ------   *   ------   *   ------
CNTV       CNTV       CNTV       CNTV


Не подскажите, с какой стороны подойти к решению?


Автор: Error202 28.7.2016, 14:40
решено, спасибо!

Код

select type_id, (
    sum(if(view_id = 1, cnt, 0)) 
    * sum(if(view_id = 2, cnt, 0))
    * sum(if(view_id = 3, cnt, 0))
    * sum(if(view_id = 4, cnt, 0))
) / pow(sum(cnt), 4) as mark
from oqv
where object_id = ?
group by type_id
order by mark desc

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)