Utilice el resultado de la instrucción WITH dentro de una subconsulta en Clickhouse.
La siguiente consulta funciona bien:
WITH
(
SELECT 1
) AS test_val
SELECT
test_val,
count()
FROM system.tables
Pero si reescribo lo mismo como una subconsulta:
WITH
(
SELECT 1
) AS test_val
SELECT *
FROM
(
SELECT
test_val,
count()
FROM system.tables
)
Se produce un error:
Code: 47. DB::Exception: Received from clickhouse-server:9000. DB::Exception: Missing columns: 'test_val' while processing query: 'SELECT test_val, count() FROM system.tables', required columns: 'test_val', source columns: 'total_bytes' ...
(Sé que es una consulta inútil, pero la publico aquí como ejemplo)
¿Cómo puedo usar test_val
dentro de una subconsulta?
Versión de Clickhouse: 20.11
davy.ai
El problema con la subconsulta proporcionada es que no incluye la columna
test_val
en su salida.Para usar
test_val
dentro de una subconsulta, necesitamos seleccionar explícitamente esa columna también en la subconsulta. Aquí está la consulta corregida:Nótese que hemos incluido la columna
test_val
en la declaración interiorSELECT
y hemos renombrado la subconsulta comosubquery_alias
. La declaración exteriorSELECT
selecciona todas las columnas que constan en la salida de la subconsulta. Esto debería funcionar sin problemas.