Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 SUM, AVG, MIN, MAX....  [new]
TORT
Member

Откуда:
Сообщений: 1095
А можно ли самому чего-нибудь подобное написать? Сделать свою аггрегирующую функцию..., например....
6 апр 05, 12:38    [1444912]     Ответить | Цитировать Сообщить модератору
 Re: SUM, AVG, MIN, MAX....  [new]
TORT
Member

Откуда:
Сообщений: 1095
А если честно, то нужна функция, которая возвращает произведение всех записей в столбце....:(
6 апр 05, 12:41    [1444926]     Ответить | Цитировать Сообщить модератору
 Re: SUM, AVG, MIN, MAX....  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
Типа факториала что-ли? )) Факториал столбца...)
Вообще что-то в доках я вроде что-то вроде-бы видел подобное, дескать можно, но сам не пробовал..
6 апр 05, 13:44    [1445284]     Ответить | Цитировать Сообщить модератору
 Re: SUM, AVG, MIN, MAX....  [new]
golsa
Member

Откуда: Красноярск
Сообщений: 789
Дык через рекурсию можео посчитать - без городьбы
6 апр 05, 14:06    [1445438]     Ответить | Цитировать Сообщить модератору
 Re: SUM, AVG, MIN, MAX....  [new]
TORT
Member

Откуда:
Сообщений: 1095
А как это через рекурсию...
Я пока сделал через функцию, которая домножает тек значение на произведение предыдущих.... Это не одно и тоже...
6 апр 05, 14:31    [1445581]     Ответить | Цитировать Сообщить модератору
 Re: SUM, AVG, MIN, MAX....  [new]
golsa
Member

Откуда: Красноярск
Сообщений: 789
Пусть есть таблица SR (NUM,VAL) - Номер и Значение:
VALUES (1,9),(2,8),(3,7),(4,6),(5,5),(6,4),(7,3),(8,2),(9,1)
(Для получения NUM можно воспользоваться row_number() over ())

WITH V_T(num,val)
AS (
SELECT * FROM SR WHERE num=1

UNION ALL
SELECT
SR.NUM
VT1.VAL*SR.VAL
FROM
V_T,
SR
WHERE
SR.NUM = V_T.NUM+1
)
SELECT VAL FROM V_T WHERE NUM = (SELECT MAX(NUM) FROM SR)
7 апр 05, 09:57    [1447588]     Ответить | Цитировать Сообщить модератору
 Re: SUM, AVG, MIN, MAX....  [new]
golsa
Member

Откуда: Красноярск
Сообщений: 789
Запятую пропустил:

UNION ALL
SELECT
SR.NUM,
VT1.VAL*SR.VAL
7 апр 05, 10:00    [1447599]     Ответить | Цитировать Сообщить модератору
 Re: SUM, AVG, MIN, MAX....  [new]
TORT
Member

Откуда:
Сообщений: 1095
Идея хорошая... Спасибо!
20 апр 05, 18:18    [1483941]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить