|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
Добрый день! Нужно кластеризовать числовые значения поля таблицы. Например, на два кластера и узнать центр кластера ТОЛЬКО средствами SQL (не используя интеллектуальные инструменты MSSQL, Oracle и т.д.) М.б. кому-то встречалось решение или приходилось решать такую задачу. Спасибо Администратору: Разместил этот пост в неск. ветках разных СУБД, т.к., имхо, он носит общетеоретический характер. Заранее сорри, если это нарушает правила форума. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 08:44 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNikНужно кластеризовать числовые значения поля таблицы. Например, на два кластера и узнать центр кластера ТОЛЬКО средствами SQL (не используя интеллектуальные инструменты MSSQL, Oracle и т.д.) Скажите, а зачем решать задачу именно так? Из академического интереса? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 10:43 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
Павел Воронцов, не совсем понял вопрос. Если знаете др. способы, подскажите , пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 10:48 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNik, Ты вообще в курсе, что такое кластер в Oracle? Общетеоретический ты наш... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 10:58 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNik, зачем "ТОЛЬКО средствами SQL (не используя интеллектуальные инструменты MSSQL, Oracle и т.д.)"? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:02 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
проходил мимо..., пожалуйста, проходите мимо и научитесь там уважительному обращению. для всех остальных: пожалуйста, обратите внимание, что речь идет о кластеризации численных данных, представленных в поле таблицы(см. первый пост) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:04 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNik на вопросы про сферических коней в вакууме будете получать соответствующие ответы. прекратите бредить. изьясняйтесь нормально, описывайте задачу в понятных участникам форума терминах, у каждого своё понимание кластеров например. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:08 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
suPPLer, без интел. средств, т.к.: - не на всех серверах стоят расширенные версии СУБД и - хотелось бы получить "универсальное" решение можно и сборку написать, но хотелось бы решить задачу проще, пусть и менее точно, т.е. др. методы кластеризации тоже приемлемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:10 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
VintNikNikNikNik на вопросы про сферических коней в вакууме будете получать соответствующие ответы. прекратите бредить. изьясняйтесь нормально, описывайте задачу в понятных участникам форума терминах, у каждого своё понимание кластеров например. в первом посте написано NikNikNikNikНужно кластеризовать числовые значения поля таблицы . Например, на два кластера и узнать центр кластера ТОЛЬКО средствами SQL (не используя интеллектуальные инструменты MSSQL, Oracle и т.д.) что предлагает добавить к описанию для большей понятности ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:12 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNik, Пример входных пареметров как Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:16 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNik стоять в позе я дартаньян а все остальные.... череповато. Вы тут никто и понимать Вас никто не обязан, что Вам наглядно пытаются показать наводящими вопросами. тоже кластер. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:19 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
VintNikNikNikNik стоять в позе я дартаньян а все остальные.... череповато. Вы тут никто и понимать Вас никто не обязанвинт, спокойнее тут все кто-то ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:20 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNik, Умник, тебе не в специальные форумы нужно, а в общетеоретические. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:20 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNikчто предлагает добавить к описанию для большей понятности ?Посмотрите требования к написанию топиков. Не хватает а) внятной постановки задачи (в Вашем случае было бы хорошим тоном дать ссылки на описание алгоритмов) б) описания структуры данных в) примера входных и выходных данных. Также неясно зачем Вам именно универсальное решение средствами БД? Сдается мне, что самое универсальное - это выгрести начальный набор данных из БД и потом - куда-нибудь в БД запихнуть расчитанный вариант. Безусловно, какие-то шаги алгоритма удобней делать на стороне базы, но для этого надо хорошо представлять алгоритм, а большинство участников форума о таких вещах если и слышало, то редко и мельком (потому к Вам и вопросы). Цельное решение только средствами SQL невозможно, потому что алгоритм итерационный (насколько я понял), и SQL к этому плохо приспособлен. Ну то есть написать запрос можно и он даже будет работать, но вычислительные затраты будут огромны и несоизмеримы с вычислением того же самого на клиенте. В общем - постановку разжуйте, тогда что-то Вам может и подскажут. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:22 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNikНужно кластеризовать числовые значения поля таблицы http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM NTILE (FAQ) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:22 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
А чё, мне тоже интересно где у меня центр кластера. А то я всегда думал, что он у меня децентрализованный. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:22 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
да даже если речь идет не о раке, а о кластеризованной таблице, что есть ее центр? значение находящееся ровно посередине таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:29 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
Reylondsда даже если речь идет не о раке, а о кластеризованной таблице, что есть ее центр? значение находящееся ровно посередине таблицы?речь о датамайнинге и, возможно, функциях CLUSTER_SET, CLUSTER_ID ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:30 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
Я нашёл ключевое слово для Google: Кохонен (А Elic читер - использовал интеллектуальный инструмент Oracle) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:32 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNikбез интел. средств, т.к.: - не на всех серверах стоят расширенные версии СУБД и - хотелось бы получить "универсальное" решение Реализуйте алгоритм работы с целочисленным массивом на Java. А массив заполняйте в отдельном слое, используя JDBC и соответствующие драйвера для нужных Вам СУБД. Будет у Вас универсальное решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 11:51 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
тов гражд люди (так универсальнее), если уж речь идет об универсальности, то числа должны быть комплексными. хотя, если пойти дальше, это должны быть и не числа вовсе, а сырые данные (что-то вроде RAW) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 13:21 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
cmddd--Eugene--, может Автор под кластеризацией имел в виду Карты Кохонена ? Именно они и имелись ввиду. Но если проще/эффективнее реализовать кластеризацию др. методами, то это тоже приемлемо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 13:41 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNik, Сдаётся мне, что голым SQL-ем вы не обойдётесь, придётся хранимку писать, а лучше унести данные в сишную/явовскую процедурку, и на этом всё). То есть теоретически написать можно в любой СУБД, где есть транзитивные запросы и плюс хоть какая-то возможность на каждом шаге сделать временную табличку и при этом залезть в табличку, сделанную на предыдущем шаге. Но вот как вы это потом отлаживать будете? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 13:49 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
В Oracle BI есть готовые функции кластеризации методами K-means и O-means, по Кохонену, вроде бы, нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 13:57 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
iv_an_ruтранзитивные запросы и плюс хоть какая-то возможность на каждом шаге сделать временную табличку и при этом залезть в табличку, сделанную на предыдущем шаге. Но вот как вы это потом отлаживать будете? таки это все есть практически на любой СУБД. отладка без вопросов - через менеджер или VS ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 14:06 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
LucreciaВ Oracle BI есть готовые функции кластеризации методами K-means и O-means, по Кохонену, вроде бы, нет. пожалуйста, прочтите первый пост - "без использования" интеллектуальных надстроек/расширений СУБД ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 14:08 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNikLucreciaВ Oracle BI есть готовые функции кластеризации методами K-means и O-means, по Кохонену, вроде бы, нет. пожалуйста, прочтите первый пост - "без использования" интеллектуальных надстроек/расширений СУБДТогда оцените "разработку без использования" в человеко-часах и покажите заказчику, пусть сравнит с опцией "купить надстройки/расширения". Думаю, он выберет второе. Если не дурак. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 14:22 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
Павел ВоронцовNikNikNikNikпропущено... пожалуйста, прочтите первый пост - "без использования" интеллектуальных надстроек/расширений СУБДТогда оцените "разработку без использования" в человеко-часах и покажите заказчику, пусть сравнит с опцией "купить надстройки/расширения". Думаю, он выберет второе. Если не дурак. Если это не какаянить курсовая :) А по делу, действительно непонятен метод закручивать гвозди когда можно забить( красивый каламбур вышел ) :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 14:42 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNikLucreciaВ Oracle BI есть готовые функции кластеризации методами K-means и O-means, по Кохонену, вроде бы, нет. пожалуйста, прочтите первый пост - "без использования" интеллектуальных надстроек/расширений СУБД Если ситуация такая, что готовых инструментов нет, а сделать надо, например, чтобы вообще проверить подходит ли метод для решения задачи. Ну и делайте, чем рабочее место позволяет. Я делал в Access (k-means, иерархические и проч.), можно и на PL/SQL. Но вот чистым SQL - а нафига??? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 15:10 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
Lecter, спасибо за комплимент про возраст - уже проверяю. a, "а на фига" - для универсальности переноса процедуры/функции с СУБД на СУБД Если не трудно - чиркните каркас k-means на SQL, спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 15:22 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNikLecter, спасибо за комплимент про возраст - уже проверяю. a, "а на фига" - для универсальности переноса процедуры/функции с СУБД на СУБД Если не трудно - чиркните каркас k-means на SQL, спасибо только на SQL, да еще и универсальном (ANSI?) - не знаю как. И знать не хочу) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 15:39 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNikдля универсальности переноса процедуры/функции с СУБД на СУБДДля универсальности пишут не sql-запросы, а прослойки между пользователем и данными. Их часто называют "Приложение". ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 15:39 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNikдля универсальности переноса процедуры/функции с СУБД на СУБДБД используется только как хранилище ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 15:41 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNikLecter, спасибо за комплимент про возраст - уже проверяю. a, "а на фига" - для универсальности переноса процедуры/функции с СУБД на СУБД Если не трудно - чиркните каркас k-means на SQL, спасибо Нет единого стандарта для всех СУБД. Есть АНСИ который полностью не поддерживает ни одна СУБД. А вот написав приложение на Ява... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 15:53 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNik"а на фига" - для универсальности переноса процедуры/функции с СУБД на СУБДЭто в высшей степени идиотизм. Рекомендую ознакомится с расшифровкой SQL и подумать хорошо ли он подходит для реализации нейронных алогоритмов. Ты же если остро нуждаешься в универсальности - напиши на C++ и читай про: Oracle Calling External Procedures MSSQL How to: Create and Run a CLR SQL Server User-Defined Function Как там в других СУБД я не в курсе... З.Ы. Наглость поражает. Пример данных и результата привести не потрудился зато алгоритм ему набросай. Все побежали тебе писать Kohonen clustering algorithm based on Oracle model clause. ... Хотя тебе ж это не подойдет, потому как model clause в других СУБД нет. Так что придется выкручиваться рекурсивными запросами, но не думаю что они спасут. З.З.Ы. Ах да, скажу по секрету, что в каждой СУБД свой диалект SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2011, 15:55 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
NikNikNikNikЕсли не трудно - чиркните каркас k-means на SQL, спасибоЯ тут решил заняться твоим вопросом исключительно из академического интереса. И все-таки пришел к выводу, что рекурсивным with задача не разрешима. Рассмотрим пример Numerical Example of K-Means Clustering . Реализация алгоритма укладывается в довольно компактную функцию Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Если посмотреть код функции, то может возникнуть мысль, что можно копнуть в сторону рекурсивного with, но при дальнейшем рассмотрении сразу сталкиваешься со следующими ограничениями: 1. В рекурсивной части запроса нельзя ссылаться на самого себя в inline view. Код: plaintext
Код: plaintext 1. 2. 3. 4.
Безусловно на model clause все решаемо, но тоже не особо изящно и эффективно. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2011, 23:41 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
dbms_photoshop, спасибо, круто бум потетсировать ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2011, 08:44 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
С 2011 прошли заметные улучшения, может кому-нибудь будет полезно. 1. Кластеризовать можно вообще не создавая никаких моделей 12с Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
2. Можно использовать функции cluster_* c указанием модели, но имеется только 3 алгоритма кластеризации: k-Means, O-Cluster, or Expectation Maximization . Есть возможность конфигурировать небольшое число настроек для каждого. 3. Если хочется полной гибкости - есть возможность прикрутить абсолютно любой алгоритм на R language с помощью ORE ( 11.2.0.3/4 или 12с ). Oracle R Enterprise Embedded SQL Scripts . В том числе Self-Organising Maps by Kohonen . Кроме того получить визуализацию результата из R и отобразить с помощью, например, OBIEE. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2016, 22:47 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
dbms_photoshop, Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2016, 09:11 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
dbms_photoshopесть возможность прикрутить абсолютно любой алгоритм на R language с помощью OREТут стоит уточнить, что хотя R и называют языком программирования, но он является всего лишь крайне скудным (имхо) интерпретируемым языком. Все "умные алгоритмны" написаны как правило на С и могут быть использованы в R через библиотеки. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2016, 19:37 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
dbms_photoshop3. Если хочется полной гибкости - есть возможность прикрутить абсолютно любой алгоритм на R language смотря еще, какой объем данных.. возможно, проще будет воспользоваться Python, выгрузить в панду (pandas), а дальше уже гибкость максимальная - и кластеризация, и классификация, и визуализация, и универсальность БД ) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 14:23 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
Uchastnegсмотря еще, какой объем данных.. возможно, проще будет воспользоваться Python, выгрузить в панду (pandas), а дальше уже гибкость максимальная - и кластеризация, и классификация, и визуализация, и универсальность БД )Насколько я понимаю pandas - дополнительный пакет/библиотека к python, который содержит только базовые вещи для анализа и выгрузки/загрузки данных. Она не содержит, например, "Self-Organising Maps by Kohonen" о чем шла речь в этом топике. И хоть этот пакет (kohonen) можно скачать в дополнение к python, но все равно не совсем понятно какой это дает профит по сравнению с использованием R. С одной стороны при наличии Advance Analytics option, использование R достигается через вызов extproc from Oracle, можно сохранять определения R функций прямо в базе для дальнейшего вызова и прочее. Но с другой стороны, опция стоит 23к и если цель только использовать внешние библиотеки анализа данных, то вряд ли имеет смысл платить. В конце концов написать свою библиотеку, вызывающую любую необходимую библиотеку python это дело пары дней, так что выбор R vs python для меня не очень очевиден. Хотя если в python нет дефолтных ограничений по памяти и параллельности как в R (которые обходятся танцами с бубном), то это ему большой плюс. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 16:52 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
Нижесказанное имеет некоторое отношение к сравнению СУБД, надеюсь модераторы меня простят. Акцент таки на возможностях Оракла. Это был достаточно интересный пример для анализа возможностей rec CTE. Что по сути требуется - это выполнять в рекурсивном члене аналитику и группировку. Группировка невозможна ни в одной из имеющихся у меня под рукой СУБД (Oracle, MSSQL, PG), но агрегатные функции можно корявенько заменить на аналитика + distinct или аналитика + фильтр по row_number. dbms_photoshop Если посмотреть код функции, то может возникнуть мысль, что можно копнуть в сторону рекурсивного with, но при дальнейшем рассмотрении сразу сталкиваешься со следующими ограничениями: 1. В рекурсивной части запроса нельзя ссылаться на самого себя в inline view. Код: plsql 1.
dbms_photoshop 2. В рекурсивной части не могут быть использованы аналитические функции: Код: plsql 1. 2. 3. 4. 5.
Вообще, насколько мне известно, в плане возможностей rec with ничего не поменялось с 11.2 до 21с. (однако в плане производительности и оптимизации много изменений) Итак, в плане ограничений в рекурсивном члене можно привести такую таблицу ORA PG MSSQLdistinct - + -group by - - -subquery - + +analytics + + +(*) Или чуть подробнее - distinct реализован только в PG - агрегатные функции недопустимы нигде - использование имени CTE в подзапросе невозможно только в Оракл, что сильно ограничивает потенциал - использование аналитики возможно везде но в МССКЛ работает кривовато. про кривоватоВ МССКЛ аналитика работает над набором строк полученным от конкретного родителя а не над всем набором строк на данном шаге. Это согласно документации, но всё равно имеет мало смысла на мой взгляд. В примере ниже сумма на третьем уровне посчитана для каждого из родителей отдельно в случае МССКЛ. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
PG Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
Oracle Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
Итого, в МССКЛ задача нерешаема из-за кривости с аналитикой, в Оракл задача нерешаема т.к. нельзя ссылаться на имя CTE в подзапросе. А вот в PG решение может быть, например, таким. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
dbms_photoshop Безусловно на model clause все решаемо, но тоже не особо изящно и эффективно. :) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2022, 16:23 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
Если кратко, два основных тезиса 1. PG явный лидер в плане возможностей для рекурсивных запросов т.к. позволяет реализовывать более сложную логику в рекурсивном члене. 2. Я не вижу фундаментальных причин запрещать агрегатные функции в рекурсивном члене. Может я что-то упускаю, а возможно это появится в будущем. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2022, 16:26 |
|
Кохонен на SQL
|
|||
---|---|---|---|
#18+
dbms_photoshop Я не вижу фундаментальных причин запрещать агрегатные функции в рекурсивном члене. Может я что-то упускаю, а возможно это появится в будущем. Достаточно часто, когда может возникнуть мысль о группировке в recursive member referring CTE name, можно группировку выполнить уже после того как иерархия построена. Например, когда надо посчитать агрегат для каждого узла путём соединения построенной иерархии с какой-то детализирующей таблицей. Если же требуется группировка в recursive member query block which does not refer CTE name, то это вполне возможно в Оракл. Парочку примеров тут Пятничная задача: работнички. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2022, 16:38 |
|
|
start [/forum/topic.php?all=1&fid=52&tid=1879630]: |
0ms |
get settings: |
13ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
23ms |
get topic data: |
2ms |
get forum data: |
1ms |
get page messages: |
776ms |
get tp. blocked users: |
0ms |
others: | 284ms |
total: | 1106ms |
0 / 0 |