Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Декабрь 18, 2017, 07:50:49 pm

Автор Тема: Функция умножения (Qlik Sense & Qlikview)  (Прочитано 189 раз)

Оффлайн squall

  • Новичок
  • *
  • Сообщений: 4
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
Функция умножения (Qlik Sense & Qlikview)
« : Ноябрь 17, 2017, 02:30:53 pm »
Не могу нигде найти - вот есть функции sum (суммировать), а нет ли какой-нибудь функции "перемножить"?
Задача - нужно перемножить все значения в поле между собой

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Функция умножения
« Ответ #1 : Ноябрь 17, 2017, 02:43:06 pm »
То есть?
В скрипте при загрузке? -> Поле1*Поле2
В выражениях в таблицах?
То здесь надо смотреть по модели и использовать сложные выражения с aggr() (редкий случай),
 либо поступать аналогично скриптовому подходу - простым перемножением.

Оффлайн squall

  • Новичок
  • *
  • Сообщений: 4
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
Re: Функция умножения
« Ответ #2 : Ноябрь 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)

Неофициальный форум пользователей QlikView & Qlik Sense

Re: Функция умножения
« Ответ #2 : Ноябрь 17, 2017, 02:57:56 pm »

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Функция умножения
« Ответ #3 : Ноябрь 17, 2017, 03:14:02 pm »
Для того, чтобы
Цитировать
.. перемножить все значения в поле между собой
в скрипте можно использовать логарифмы.

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

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Функция умножения
« Ответ #4 : Ноябрь 17, 2017, 09:18:19 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]