Описание тега recursive-cte

Рекурсивное общее табличное выражение в SQL - это общее табличное выражение (CTE, также известное как "предложение WITH"), которое рекурсивно ссылается на себя. Набор временных результатов обычно вычисляется путем итерации. Используйте этот тег для вопросов, касающихся определения и использования рекурсивных CTE.
1 ответ

Объединение перекрывающихся временных диапазонов в PostgreSQL

У меня есть таблица PostgreSQL (9.4), которая содержит диапазоны отметок времени и идентификаторы пользователей, и мне нужно свести все перекрывающиеся диапазоны (с одинаковым идентификатором пользователя) в одну запись. Я пробовал сложный набор CTE…
1 ответ

SQL Server 2014 объединяет перекрывающиеся диапазоны дат

У меня есть таблица с 200 000 строк в базе данных SQL Server 2014, которая выглядит следующим образом: CREATE TABLE DateRanges ( Contract VARCHAR(8), Sector VARCHAR(8), StartDate DATE, EndDate DATE ); INSERT INTO DateRanges (Contract, Sector, StartD…
1 ответ

Преобразование скрипта из MSSQL в PL/pgSQL

Я только начал работать со статическим дампом EVE, который представляет собой множество таблиц с данными об игре, такими как список подключенных солнечных систем, с которыми я имею дело. Я хочу создать веб-страницу, которая позволит вам отфильтровыв…
10 июн '13 в 18:48
1 ответ

Найти полный путь к файлу в файловой системе

У меня есть такая файловая система: C Drive - Docements - (empty) - Music - Rock - a.mp3 - Jazz - SmoothJazz - b.mp3 - Photo - (empty) D Drive - (empty) Каждый файл или каталог имеет идентификатор и идентификатор его родителя. Теперь, учитывая имя ф…
14 май '16 в 21:34
3 ответа

ГДЕ столбец NOT LIKE не работает корректно с рекурсивным cte

Это код SQL Server. Допустим, у вас есть таблица с тремя столбцами. Столбец 1 называется Monster, столбец 2 - Level, а столбец 3 - BodyType. Уровень показывает, насколько могущественен монстр, а BodyType - тип тела. Моя схема: CREATE TABLE YourTable…
27 май '17 в 16:08
1 ответ

Типы не совпадают между якорем и рекурсивом

У меня проблема с SQL-запросом ошибка с рекурсивными датами Типы не совпадают между якорем и рекурсивной частью в столбце "CalendarDate" рекурсивного запроса "Dates".' ";WITH Dates as (" + " SELECT @FromDate as CalendarDate " + " UNION ALL " + " SEL…
04 янв '19 в 11:37
5 ответов

Повторите значение между двумя значениями в столбце

Я пытаюсь повторить первое определенное непустое значение в столбце до следующего определенного непустого значения в том же столбце. Как я могу это сделать? Данные выглядят так: ID | Msg ---+----- 1 | 2 | 3 | 4 | 5 | Beg 6 | End 7 | 8 | Beg 9 | 10 |…
14 янв '19 в 20:47
1 ответ

Обратный результат запроса SELECT

У меня есть рекурсивный запрос, который возвращает несколько строк из иерархической модели. Вид: files_array := ARRAY (WITH RECURSIVE files_to_parent AS ( SELECT FileID, Name, ParentID FROM File WHERE FileID = file_id UNION ALL SELECT F.FileID, F.Na…
31 янв '19 в 12:00
1 ответ

Постгрес направленного обхода графа вверх и вниз

У меня есть проблема, которую я могу решить для небольших наборов данных, но она не работает на больших наборах с (возможно) нечистыми данными. База данных является реализацией ациклического (надеюсь) графа в PostgreSQL. С тремя столами vertex_eleme…
2 ответа

Оптимизировано ли внешнее предложение WHERE в рекурсивном CTE?

Со следующим определением таблицы: CREATE TABLE Nodes(id INTEGER, child INTEGER); INSERT INTO Nodes(id, child) VALUES(1, 10); INSERT INTO Nodes(id, child) VALUES(1, 11); INSERT INTO Nodes(id, child) VALUES(1, 12); INSERT INTO Nodes(id, child) VALUES…
28 сен '14 в 04:31
1 ответ

Почему в рекурсивных CTE аналитические функции (ROW_NUMBER) выполняются процедурно?

Вчера я ответил на рекурсивный CTE, который выявил проблему с тем, как они реализованы в SQL Server (возможно, и в других СУБД?). В основном, когда я пытаюсь использовать ROW_NUMBER по отношению к текущему рекурсивному уровню, он работает против каж…
1 ответ

Рекурсивный JSONB postgres

Я пытаюсь создать рекурсивный CTE в Postgres, который поддерживает как массивы, так и объекты, чтобы вернуть список пар ключ-значение и, похоже, не смог найти хороший пример. Это мой текущий код. with recursive jsonRecurse as ( select j.key as Path …
30 май '18 в 07:02
2 ответа

Использование рекурсивного CTE с Ecto

Как мне использовать результат рекурсивного CTE в запросе, который я планирую выполнить с Ecto? Например, допустим, у меня есть таблица узлов, структурированная так: -- nodes table example -- id parent_id 1 NULL 2 1 3 1 4 1 5 2 6 2 7 3 8 5 и у меня …
1 ответ

Использовать рекурсивные общие табличные выражения, такие как цикл while

У меня есть следующая таблица Log Date date Description varchar ID integer Учитывая дату в качестве параметра, я должен найти нет. или количество журналов, записываемых каждый день от даты начала до месяца после его использования с помощью рекурсивн…
1 ответ

Проблема с рекурсивным CTE в PostgreSQL

Этот запрос генерирует числа от 1 до 4. with recursive z(q) as ( select 1 union all select q + 1 from z where q < 4 ) select * from z; Но если я изменю это к этому, with x as ( select 1 y ), recursive z(q) as ( select y from x union all select q …
1 ответ

Найти все типы компонентов составного типа, используя WITH RECURSIVE

Учитывая typname составного типа, как мне найти тип oids из всех типов компонентов рекурсивно? Пример: CREATE TYPE t_station AS (x INT, y INT, label VARCHAR); CREATE TYPE t_address AS (city VARCHAR, street VARCHAR, no INT, stations t_station[]); CRE…
21 сен '12 в 16:58
0 ответов

Рекурсивный CTE в улье

У меня есть рекурсивный CTE, написанный на SQL-сервере, который мне нужно перенести на HIVE. Поскольку улей не поддерживает рекурсию в CTE, я застрял здесь. мне советуют написать Java UDF для этого, но я не эксперт в Java. Если бы кто-нибудь мог зде…
1 ответ

Найти всех сотрудников, подотчетных руководителю, включая руководителей

У меня есть таблица как минимум с тремя столбцами: EMPLID, NAME, SUPERVISOR_ID. В одном запросе я хотел бы получить прямые отчеты от менеджеров, включая любые прямые отчеты от подчиненных менеджеров вплоть до самого низкого уровня персонала, когда е…
1 ответ

Рекурсивный CTE-Найти всех сотрудников ниже менеджера

Я создал образец скрипки для этого SQLFIDDLE CREATE TABLE [dbo].[Users]( [userId] [int] , [userName] [varchar](50) , [managerId] [int] , ) INSERT INTO dbo.Users ([userId], [userName], [managerId]) VALUES (1,'Darry',NULL), (2,'Cono',1), (3,'Abros',2)…
24 дек '14 в 05:18
2 ответа

SQL Server: выберите Parent-Child

У меня есть SQL Server 2008 с таблицей под названием ProductCategories, разработанной следующим образом: Id | Name | ParentId 71 PCs NULL 32 MACs NULL 3 Keyboard 1 9 Mouse 1 5 Screen 1 11 Keyboard 2 7 Mouse 2 8 Screen 2 Я хотел бы выбрать из этой та…