Не могу нигде найти - вот есть функции sum (суммировать), а нет ли какой-нибудь функции "перемножить"?
Задача - нужно перемножить все значения в поле между собой
То есть?
В скрипте при загрузке? -> Поле1*Поле2
В выражениях в таблицах?
То здесь надо смотреть по модели и использовать сложные выражения с aggr() (редкий случай),
либо поступать аналогично скриптовому подходу - простым перемножением.
Да, в выражениях в таблицах
пример:
Артикул Неделя 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)
Для того, чтобы
Цитировать.. перемножить все значения в поле между собой
в скрипте можно использовать логарифмы.
Т.е., если нам надо перемножить числа через суммирование то мы можем рассчитать логарифм каждого слагаемого, сложить результаты, затем возвести число 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;
Цитата: 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]