Похожие чаты

Всем привет) Есть интересный вопрос и у меня он вызвал

затруднения. Приведу пример двух таблиц в упрощённом виде:
```
Table A:
id: str
parent_id: Optional[str]
level: int
parent = relationship('A')
children Mapped[list['A'] = relationship('A')


Table B:
id: str
a_id: ForeignKey('a.id')

Таблица B относится к А как M:1

Суть в чём. Необходимо вывести от передаваемого уровня(к примеру идёт вложенность 1-ого до 15-ого уровня и пусть я передаю 1-ый уровень) всех children. Это не проблема. Но мне нужно посчитать для первого уровня общее количество func.count(b.id). То есть логично, что для 1-ого уровня это будут все, которые относятся от 1 до 15 уровня. 2-ых уровней таблицы А может быть несколько. И нужно, отдельно для каждого посчитать от 2 уровня до 15. И хотелось бы всё это вернуть одним запросом. Господа, как?)))

5 ответов

19 просмотров

Рекурсивным cte

Можно сначала развернуть дерево полностью добавив к каждой итерации разворачивания столбец с числом, соответствующим уровню вложенности, потом джойнить B, а потом только считать count

Igor'-Pypkin 🫥 Автор вопроса
Artemiy
Можно сначала развернуть дерево полностью добавив ...

давай всё же на ты) Вся проблема в том, что к каждому уровня А, относится определённое количество Б записей. И если считать всё рекурсивно, нужно будет грузить это всё в память. С вариантом cte это можно избежать, а вот как избежать это с sql запросом(хотя знаю, что должен быть способ это всё посчитать одним запросом:)), я хз)

Igor'-Pypkin 🫥 Автор вопроса
Artemiy
Так CTE это же всё равно часть SQL-запроса

да, пойми пжл правильно, тот подход который ты посоветовал, он подходит и закрывает полностью мой кейс. Сейчас мой вопрос скорее из любопытства, как бы это можно было улучшить

Похожие вопросы

Обсуждают сегодня

Ready for some fun AND a chance to win TKO Tokens? Join us for exciting minigames in our Telegram group! 🕒 Don’t miss out—games start on today 25 October 2024, at 8 PM! Ge...
Milkyway | Tokocrypto
255
Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
VIP-392 [zkSync] New native USDC market in the Core pool Summary If passed, following the Community proposal “Support native USDC on Venus Core Pool of ZKSync Era” and the a...
Venus Announcements
1
is that okay?
Samurai 🇯🇵
21
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
How about the project bro Likes the community not that active ?
🅿️abby_FX
19
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
Guys, Donald Trump or Kamala Harris? It does not matter for Bitcoin in the long run!! 2020 Election: After Joe Biden's victory in November 2020, Bitcoin steadily rose from...
Sabah Shabu
3
как быть с принтером? такой подход прокатит?
zamtmn
12
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Карта сайта