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

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

« предыдущая - следующая »

squall

ноября 17, 2017, 02:30:53 pm Последнее редактирование: ноября 17, 2017, 09:21:53 pm от admin
Не могу нигде найти - вот есть функции 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

ноября 17, 2017, 03:14:02 pm #3 Последнее редактирование: ноября 17, 2017, 09:21:20 pm от admin
Для того, чтобы
Цитировать.. перемножить все значения в поле между собой

в скрипте можно использовать логарифмы.

Т.е., если нам надо перемножить числа через суммирование то мы можем рассчитать логарифм каждого слагаемого, сложить результаты, затем возвести число 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 pm
Да, в выражениях в таблицах

пример:

Артикул   Неделя 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]

Рейтинг@Mail.ru Яндекс.Метрика