У меня есть SQL-запрос, который требует много времени для выполнения (например, 30 минут!) Из-за огромных данных, которые он принимает.SQL - Query Self Join без его выполнения дважды
Тем не менее, мне нужно сделать пару вещей, более того, для этого результата присоединитесь к этому запросу.
Я не могу создать временную таблицу в этой базе данных.
Что я хочу - это способ сделать это самостоятельно, не выполняя этот запрос дважды.
Есть ли способ написать основной запрос (возможно, с синтаксисом «WITH»), чтобы это разрешить?
Edit: Вот пример того, что будет работать:
With
MyQueryAlias1 AS
(30 minutes sql query here)
MyQueryAlias2 AS
(30 minutes sql query here)
SELECT
MyQueryAlias1.field1
FROM
MyQueryAlias1
JOIN MyQueryAlias2
ON MyQueryAlias1.field2 = MyQueryAlias2.field3
Это просто пример, но он показывает, что «запрос SQL 30 минут здесь» будет выполняться дважды, что моя проблема.
разместим ваш запрос! – Hawk
Просьба представить минимальный пример того, что вы пытаетесь достичь (включая операторы DDL и DML для создания соответствующих таблиц и выборочных данных) и сообщить нам, какими будут ожидаемые результаты. Существуют различные возможности для устранения самосоединений (иногда с использованием аналитических функций или иерархических запросов), но в равной степени может быть и то, что невозможно исключить объединение), но мы не можем помочь, если мы не знаем, в чем проблема. – MT0
Не могу помочь, если мы не получим пример для работы над –