¿Herramienta SQL que puede usar conjuntos de resultados de consultas como tablas temporales para análisis posteriores y operaciones de conjuntos?

Por ejemplo, digamos que necesito hacer operaciones de configuración y uniones en los siguientes conjuntos de resultados de 3 consultas SQL diferentes:

  • No quiero escribir una consulta compuesta con subconsultas, ni usar tablas de bases de datos temporales, vistas o CTE. En otras palabras, no hay procesamiento en el servidor de la base de datos sino en la máquina cliente.
  • No estoy preguntando sobre generadores de consultas basados ​​en GUI como SQLyog

Algo que permitiría un análisis de datos más rápido utilizando conjuntos de datos desglosados ​​​​como a continuación de una gran base de datos. Podría ser más o menos como si pudiera unir dos conjuntos de resultados de dos consultas separadas en el desarrollador Toad/SQL. (Lo que me encuentro haciendo ahora para lograr esto es pegar múltiples conjuntos de datos de cada una de estas consultas en MS Excel y usar vlookup() y filtrar más, etc.)

Resultado de la consulta SQL 1: (T1)

Col1 Col2 
A    1
B    2

Resultado de la consulta 2: (T2)

Col3 Col4 
1    #
2    *

Resultado de la consulta 3: (T3)

Col5   
1     
3    

La operación requerida que se debe realizar en T1, T2, T3 desde arriba es:

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

(No es necesario que la herramienta genere SQL como el anterior para procesar sobre los conjuntos de resultados, el SQL anterior es solo para transmitir la lógica que tengo en mente).

El resultado requerido es:

Col1  Col4
1    #

[EDITAR]

Esto se preguntó anteriormente aquí en DBA.SE y OP ha migrado.

¿Por qué no usar vistas + algún generador visual de consultas?
Había dado ejemplos simples solo para ilustración, las consultas reales serían ad-hoc y complejas (resultados en unas pocas filas de 100k). El enfoque de la pregunta es operar en conjuntos de resultados localmente después de obtenerlos de la base de datos.
Vea mi comentario sobre XE en su pregunta DBA.SE: ¿le sirve de algo? Cree un enlace y haga sus cosas localmente en él. Vea la respuesta de P. Forstmann aquí (en los foros de Oracle). Por cierto, uso el nombre Vérace en DBA.SE.
Muchas herramientas de informes le permiten hacer esto (recuerdo esto de cuando trabajaba en Business Objects , ahora comprado por SAP). Le permiten definir una capa intermedia que contiene lo que describe. No exactamente ad-hoc , pero si tiene el módulo de diseñador lo suficientemente rápido como para armarlo, con la capacidad adicional de almacenar el diseño intermedio.

Respuestas (2)

Con los marcos de datos de pandas , puede ejecutar una consulta inicial (o un conjunto de consultas) para completar los marcos de datos y luego realizar todas sus uniones, manipulación, informes, exportaciones, etc. fuera de línea en la máquina cliente.

Mejor aún, puede crear un script que, a pedido, realice todas las acciones anteriores para volver a ejecutar su proceso con datos nuevos según sea necesario.

Probablemente valga la pena leer la comparación entre Pandas y la página SQL.

¡Impresionante! Parece que esto me ayudaría. ¡Muchas gracias!

Continuaré toda la correspondencia sobre este tema aquí. Como sugerí, aún puede usar XE con los servicios heterogéneos de Oracle, puede conectarse a DB2 y MS SQL Server .

[EDITAR]

Puede conectar SQL Developer mediante JDBC. Verifique aquí y aquí (los dos primeros resultados buscando en Google "JDBC y Oracle SQL Developer"), y especialmente aquí (tercer resultado). "Me he metido" con MySQL usando SQL Developer - pruébalo.

Desde el primer enlace a DB2 le di "CREAR ENLACE DE BASE DE DATOS eetest_link CONECTAR A "usuario" IDENTIFICADO POR "contraseña" UTILIZANDO 'eetest';" - así que creo que uno puede asumir que sí, funciona de esa manera - pruébelo y contáctenos si hay problemas. No es la primera persona que desea conectarse a diferentes bases de datos.
¿Quizás algo como "CREAR (Oracle) TABLA COMO SELECCIONAR My_Stuff FROM DB2_Link...? No puedo recordarlo en la parte superior de mi cabeza, ¡no tengo un sistema en ejecución aquí!
Eso podría funcionar si XE puede vincularse a DB2 como usted sugirió, pero esto no es realmente lo que estoy buscando, como mencioné en la pregunta, no hay tablas ni vistas temporales. ¡Gracias!
Seleccione sus datos en una tabla de Oracle "real" (es decir, permanente en el disco), no necesariamente temporal.