powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Расширение агрегатных функций
18 сообщений из 18, страница 1 из 1
Расширение агрегатных функций
    #35783576
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно эмулировать собственные агрегатные функции?
Например среднее геометрическое.
С уважением, Naf
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35783622
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Naf,

эмулировать где и что значит эмулировать? В оракле можно писать пользовательские агрегатные функции без всякой эмуляции.
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35783625
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
explaNaf,

эмулировать где и что значит эмулировать? В оракле можно писать пользовательские агрегатные функции без всякой эмуляции.
Покажи пример, просто не знаком с Oracle
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35783629
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NafКак можно эмулировать собственные агрегатные функции?
Например среднее геометрическое.
С уважением, Naf1) В Oracle есть возможность написать свою агрегатную функцию и использовать ее. Пример есть на форуме (от А Бегуна)
2) Если нужно что-то доморощенное, то можно передавать в функцию массив/курсор/текст запроса, по которому функция будет считатьзначение и выдавать.
Далее эту функцию использовать в групповых запросах.
Не очень эффективно, но зато будет работать.
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35783659
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelyNafКак можно эмулировать собственные агрегатные функции?
Например среднее геометрическое.
С уважением, Naf1) В Oracle есть возможность написать свою агрегатную функцию и использовать ее. Пример есть на форуме (от А Бегуна)
2) Если нужно что-то доморощенное, то можно передавать в функцию массив/курсор/текст запроса, по которому функция будет считатьзначение и выдавать.
Далее эту функцию использовать в групповых запросах.
Не очень эффективно, но зато будет работать.что-то найти не могу
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35783671
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Naf wrote at 28.01.2009 17:47:

> что-то найти не могу

http://www.oracle.com/global/ru/oramag/augsept2002/dev_udag.html
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35783705
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis Popov
Naf wrote at 28.01.2009 17:47:

> что-то найти не могу

http://www.oracle.com/global/ru/oramag/augsept2002/dev_udag.html
спасибо
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35783710
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NafexplaNaf,

эмулировать где и что значит эмулировать? В оракле можно писать пользовательские агрегатные функции без всякой эмуляции.
Покажи пример, просто не знаком с Oracle

Примеры не очень простые, в документаци есть.

Суть в том, что нужно описать объектный тип и подключить его к СУБД как агрегатную функцию. В процессе выполнения запроса оракл создаёт объект и вызывает метод его инициализации, затем для каждой записи метод агрегации и наконец метод завершения. Метод агрегации в атрибутах объекта сохраняет значения необходимые для вычисления результата (например, количество вызовов, сумму или произведение знечений и т.п.).
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35783718
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в "стандартном" SQL. Некоем общем "множестве", поддерживываемым большинством СУБД
С уважением, Naf
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35783737
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nafа в "стандартном" SQL. Некоем общем "множестве", поддерживываемым большинством СУБД
С уважением, Naf

Иногда нестандартные агрегатные функции можно построить из комбинации стандартных функций. Если нет, считаем агрегаты на клиенте.
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35783756
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nafа в "стандартном" SQL. Некоем общем "множестве", поддерживываемым большинством СУБДВ MS SQL 2005 и выше тоже вроде как можно. Informix, если правильно помню, тоже. Думаю, практически у всех известных игроков на рынке СУБД есть свой камень за пазухой. Только появлялись они "стихийно", поэтому в стандартах, даже последних, такой возможности может не быть. Или если уже есть(лень копаться), то вряд ли те самые игроки последуют за ним в ближайшее время.
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35783773
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ChA,

видимо разница только в том, как описать пользовательскую функцию, но стандарт SQL на этом и не заморачивается и скорее всего и не будет заморачиваться. Что касается использования, то в оракле вызов пользовательской агрегатной функции синтаксически ни чем не отличается от вызова встроенной агрегатной функции, только имя функции другое - не зарезервированное.
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35783807
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько я понимаю, для описание такой функции необходимо использовать функц. программирование и/или рекурсию
С уважением, Naf
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35784032
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Naf
> Сколько я понимаю, для описание такой функции необходимо использовать
> функц. программирование и/или рекурсию
> С уважением, Naf
>

В общем случае необходим курсор по упорядоченному набору. Дайте пример,
чтобы было конкретнее.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35784123
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L
> Автор: Naf
> Сколько я понимаю, для описание такой функции необходимо использовать
> функц. программирование и/или рекурсию
> С уважением, Naf
>

В общем случае необходим курсор по упорядоченному набору. Дайте пример,
чтобы было конкретнее.

я дал в первом посте: среднее геометрическое
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35784173
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nafя дал в первом посте: среднее геометрическоеСкрипт для Firebird прилагается. Хотя, честно говоря, проблема элементарная и непонятно какие тут проблемы.
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35784591
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В postgreSQL можно: CREATE AGGREGATE .
...
Рейтинг: 0 / 0
Расширение агрегатных функций
    #35786226
Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Q
Гость
Nafсреднее геометрическое -- тоже аддитивный порядконезависимый агрегат, поэтому особых сложностей с его вычислением через примитивные агрегаты sum/avg нет:

ср_геом({ai}) = log^-1( (log(a1)+...+log(an)) / n )

Гораздо хуже придется, если убрать одно из свойств. :) Но такая ситуация, вообще говоря, выходит за рамки идеологии реляционной БД, оперирующей неупорядоченными множествами очень простых элементов.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Расширение агрегатных функций
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]