Функция умножения (Qlik Sense & Qlikview)

Автор squall, 17 ноября 2017, 02:30:53

« назад - далее »

squall

Не могу нигде найти - вот есть функции sum (суммировать), а нет ли какой-нибудь функции "перемножить"?
Задача - нужно перемножить все значения в поле между собой

admin

То есть?
В скрипте при загрузке? -> Поле1*Поле2
В выражениях в таблицах?
То здесь надо смотреть по модели и использовать сложные выражения с aggr() (редкий случай),
либо поступать аналогично скриптовому подходу - простым перемножением.

squall

Да, в выражениях в таблицах

пример:

Артикул   Неделя 1   Неделя 2   Неделя 3   Неделя 4   Неделя 5
1   0   1   0   1   1
2   1   1   1   0   0
3   1   0   1   0   0
4   1   1   1   0   1
5   0   1   1   1   0
6   1   1   1   0   0
7   1   0   1   0   1
8   1   1   1   0   0
9   1   0   1   1   0
10   0   1   1   0   0
11   1   1   1   0   0
12   1   0   1   0   1
13   1   1   1   0   0
14   0   1   0   0   0

нужно перемножить строки, например, по первому артикулу 0   1   0   1   1  (т.е. 0*1*0*1*1)

admin

#3
Для того, чтобы
Цитировать.. перемножить все значения в поле между собой
в скрипте можно использовать логарифмы.

Т.е., если нам надо перемножить числа через суммирование то мы можем рассчитать логарифм каждого слагаемого, сложить результаты, затем возвести число 10 в степень полученной суммы и получим искомый результат.

t1:
LOAD *, log10(F2) as F3 INLINE [
    F1, F2
    a, 5
    a, 6
    a, 7
    b, 4
    b, 9
    b, 2
];

load F1,
sum(F2) as СуммаЧисел,
pow(10,sum(F3)) as УмножениеЧисел
Resident t1
Group by F1;

admin

Цитата: squall от 17 ноября  2017, 02:57:56  
Да, в выражениях в таблицах

пример:

Артикул   Неделя 1   Неделя 2   Неделя 3   Неделя 4   Неделя 5
1   0   1   0   1   1
2   1   1   1   0   0
3   1   0   1   0   0
4   1   1   1   0   1
5   0   1   1   1   0
6   1   1   1   0   0
7   1   0   1   0   1
8   1   1   1   0   0
9   1   0   1   1   0
10   0   1   1   0   0
11   1   1   1   0   0
12   1   0   1   0   1
13   1   1   1   0   0
14   0   1   0   0   0

нужно перемножить строки, например, по первому артикулу 0   1   0   1   1  (т.е. 0*1*0*1*1)
Для этого примера просто перемножайте поля и все, в чем сложности?
[Неделя 1]*[Неделя 2]*[Неделя 3]*[Неделя 4]*[Неделя 5]

Яндекс.Метрика