Вопросы с тегом «recursive»

Использование рекурсии для решения проблем с базой данных.

2
Использование EXCEPT в рекурсивном общем табличном выражении
Почему следующий запрос возвращает бесконечные строки? Я бы ожидал, что EXCEPTпункт прекратить рекурсию .. with cte as ( select * from ( values(1),(2),(3),(4),(5) ) v (a) ) ,r as ( select a from cte where a in (1,2,3) union all select a from ( select a from cte except select …

4
Как на самом деле работает рекурсия SQL?
В отличие от SQL из других языков программирования, структура рекурсивного запроса выглядит довольно странно. Пройдите через это шаг за шагом, и это, кажется, разваливается. Рассмотрим следующий простой пример: CREATE TABLE #NUMS (N BIGINT); INSERT INTO #NUMS VALUES (3), (5), (7); WITH R AS ( SELECT N FROM #NUMS UNION ALL …

5
Как рекурсивно найти промежутки, где прошло 90 дней, между рядами
Это своего рода тривиальная задача в моем домашнем мире C #, но я еще не сделал это в SQL и предпочел бы решать ее на основе множеств (без курсоров). Набор результатов должен исходить из запроса, подобного этому. SELECT SomeId, MyDate, dbo.udfLastHitRecursive(param1, param2, MyDate) as 'Qualifying' FROM T Как это должно …

2
Рекурсивный CTE, чтобы найти Всего для всех детей
Вот дерево сборки, которое я хочу найти с помощью рекурсивного T-SQLзапроса (предположительно CTE) с ожидаемыми результатами ниже. Я хочу знать общую сумму на каждую сборку с учетом любой детали. То есть, если я ищу «Заклепка», я хочу знать общее количество на каждом уровне в сборке, а не только прямое число …

2
PostgreSQL Рекурсивная Глубина Потомка
Мне нужно вычислить глубину потомка от его предка. Когда запись имеет object_id = parent_id = ancestor_id, она считается корневым узлом (предком). Я пытался запустить WITH RECURSIVEзапрос с PostgreSQL 9.4 . Я не контролирую данные или столбцы. Схема данных и таблиц поступает из внешнего источника. Стол постоянно растет . Прямо сейчас …

1
Как отфильтровать использование определяемой пользователем скалярной функции из данных аудита SQL Server?
У нас есть база данных SQL Server, которая имеет спецификацию аудита базы данных, которая проверяет все выполняемые действия в базе данных. CREATE DATABASE AUDIT SPECIFICATION [dbAudit] FOR SERVER AUDIT [servAudit] ADD (EXECUTE ON DATABASE::[DatabaseName] BY [public]) Мы обнаружили, что некоторые запросы записывают в журнал аудита использование скалярной функции для каждой …

1
Как отсортировать результаты рекурсивного запроса в расширенном древовидном режиме?
Предположим, у вас есть nodesтакие таблицы: CREATE TABLE nodes ( node serial PRIMARY KEY, parent integer NULL REFERENCES nodes(node), ts timestamp NOT NULL DEFAULT now() ); Он представляет собой стандартную узловую древовидную структуру с корневыми узлами вверху и несколькими дочерними узлами, свисающими с корневых узлов или других дочерних узлов. Давайте …

3
Изменить системное значение по умолчанию для maxrecursion
Как изменить общесистемное значение по умолчанию MAXRECURSION? По умолчанию это 100, но мне нужно увеличить его до 1000. Я не могу использовать подсказки запроса, так как я использую программу, которая принимает мой запрос и выполняет его для меня, и я, к сожалению, не могу обойти это ограничение. Тем не менее, …

2
Концептуальная ERD Multi-table многие ко многим или, возможно, рекурсивные?
Я создаю концептуальную диаграмму [да, я знаю, что я включил атрибуты и ключи - но это только для меня, чтобы консолидировать то, что я делаю во время обучения] - поэтому, пожалуйста, рассматривайте ее как концептуальную с акцентом на отношения и а не таблицы как на диаграмме;) Мое препятствие заключается в …

2
Почему этот рекурсивный CTE с параметром не использует индекс, когда он использует литерал?
Я использую рекурсивный CTE в древовидной структуре, чтобы перечислить всех потомков определенного узла в дереве. Если я напишу значение литерального узла в своем WHEREпредложении, SQL Server фактически применяет CTE только к этому значению, предоставляя план запроса с низким фактическим числом строк и так далее : Однако, если я передаю значение …

2
Поиск всех соединений, необходимых для программного объединения таблицы
Учитывая SourceTable и TargetTable, я хотел бы программно создать строку со всеми необходимыми объединениями. Короче говоря, я пытаюсь найти способ создать строку, как это: FROM SourceTable t JOIN IntermediateTable t1 on t1.keycolumn = t.keycolumn JOIN TargetTable t2 on t2.keycolumn = t1.keycolumn У меня есть запрос, который возвращает все внешние ключи …

1
Рекурсивная производительность CTE
Нужна помощь с рекурсивной производительностью CTE. Ниже CTE работает очень медленно, так как пытается рекурсивно извлекать иерархические данные. Таблица большая с каждым корневым идентификатором, имеющим до 3 рекурсивных элементов. Может быть около 200000 или более корневых идентификаторов. Я знаю, что рекурсивные CTE медленны для огромного набора данных, так как для …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.