Инструмент SQL, который может использовать наборы результатов запроса в качестве временных таблиц для дальнейшего анализа и операций с наборами?

Например, предположим, что мне нужно выполнять операции над наборами и объединять наборы результатов ниже из 3 разных SQL-запросов:

  • Я не хочу писать составной запрос с подзапросами или использовать временные таблицы базы данных, представления или CTE. Другими словами, обработка не на сервере базы данных, а на клиентской машине.
  • Я не спрашиваю о построителях запросов на основе графического интерфейса, таких как SQLyog.

Что-то, что позволило бы ускорить анализ данных с использованием разбитых наборов данных, как показано ниже, из большой базы данных. Это может быть примерно так, как если бы вы могли объединить два набора результатов из двух отдельных запросов в разработчике Toad/SQL. (Что я делаю сейчас, чтобы добиться этого, так это вставку нескольких наборов данных из каждого из этих запросов в MS excel и использование vlookup() и дальнейшую фильтрацию и т. д.)

Результат SQL-запроса 1: (T1)

Col1 Col2 
A    1
B    2

Результат запроса 2: (T2)

Col3 Col4 
1    #
2    *

Результат запроса 3: (T3)

Col5   
1     
3    

Требуемая операция, которую необходимо выполнить на T1, T2, T3 сверху:

 Select T1.col1,T2.col4 
        from T1,T2 
        where T1.col2=T2.col3 
        and T1.col2 in (Select T3.col5 from T3)

(Не обязательно, чтобы инструмент генерировал SQL, как указано выше, для обработки поверх наборов результатов, приведенный выше SQL предназначен только для передачи логики, которую я имею в виду.)

Требуемый результат:

Col1  Col4
1    #

[РЕДАКТИРОВАТЬ]

Ранее об этом спрашивали здесь, на DBA.SE, и он был перенесен OP.

Почему бы не использовать представления + какой-нибудь визуальный конструктор запросов?
Я привел простые примеры только для иллюстрации, фактические запросы были бы специальными и сложными (результаты в нескольких 100 000 строк). Фокус вопроса заключается в работе с наборами результатов локально после выборки из базы данных.
См. мой комментарий о XE к вашему вопросу о DBA.SE - какой-либо смысл для вас? Создайте ссылку и делайте свои вещи локально на ней. См. ответ П. Форстманна здесь (на форумах Oracle). Кстати, я использую имя Vérace на DBA.SE.
Многие инструменты отчетности позволяют это сделать (я помню это со времен работы в Business Objects , которую сейчас купила SAP). Они позволяют вам определить промежуточный слой, который содержит то, что вы описываете. Не совсем ad-hoc , но если у вас есть модуль дизайнера, достаточно быстрый для сборки — с дополнительной возможностью хранить промежуточный дизайн.

Ответы (2)

Используя фреймы данных pandas , вы можете запустить начальный запрос (или набор запросов), чтобы заполнить фреймы данных, а затем выполнить все ваши соединения, манипуляции, отчеты, экспорт и т. д. в автономном режиме на клиентской машине.

Еще лучше вы можете создать сценарий, который по запросу будет выполнять все вышеперечисленные действия, чтобы при необходимости перезапустить ваш процесс со свежими данными.

Вероятно, стоит прочитать сравнение между Pandas и страницей SQL.

Потрясающий! Похоже, это поможет мне. Спасибо большое!

Я буду продолжать всю переписку по этому вопросу здесь. Как я и предполагал, вы все еще можете использовать XE с гетерогенными сервисами Oracle, вы можете подключаться к DB2 и MS SQL Server .

[РЕДАКТИРОВАТЬ]

Вы можете подключить SQL Developer с помощью JDBC. Проверьте здесь и здесь (первые два результата поиска в Google «JDBC и Oracle SQL Developer») и особенно здесь (третий результат). «Повозились» с MySQL с помощью SQL Developer - попробуйте.

Из первой ссылки на DB2 я дал «СОЗДАТЬ ССЫЛКУ НА БАЗУ ДАННЫХ eetest_link ПОДКЛЮЧИТЬСЯ К «пользователю», ИДЕНТИФИЦИРОВАННО «ПАРОЛЕМ», ИСПОЛЬЗУЯ« eetest »;» - так что я думаю, что можно предположить, что да, это работает как-то так - попробуйте и вернитесь к нам, если будут проблемы. Вы не первый человек, который хочет подключиться к разным базам данных.
Может быть, что-то вроде «СОЗДАТЬ (Oracle) ТАБЛИЦУ КАК ВЫБРАТЬ My_Stuff FROM DB2_Link...? Не могу вспомнить сразу — здесь нет работающей системы!
Это могло бы сработать, если XE может связываться с DB2, как вы предложили, но это не совсем то, что я ищу - как я уже упоминал в вопросе, никаких временных таблиц или представлений. Спасибо!
Выберите свои данные в "настоящую" (т.е. постоянную на диске) таблицу Oracle - не обязательно во временную.