Consulta:
WITH first_names AS (SELECT DISTINCT fname FROM voters) SELECT name from nicknames WHERE groupi = ( SELECT nn.groupi FROM nicknames AS nn WHERE name = 'john' ) AND name != 'john' AND upper(name) = ANY(first_names); Error: column "first_names" does not exist
¿Cómo hago una matriz a partir de una selección y la uso en una instrucción where?
intente UNIRSE en lugar de CUALQUIER
WITH first_names AS (SELECT DISTINCT fname FROM voters) SELECT name from nicknames JOIN first_names on fname = upper(name) WHERE groupi = (SELECT nn.groupi FROM nicknames AS nn WHERE name = 'john') AND name != 'john' ;Estás confundiendo nombres de declaraciones auxiliares con columnas aquí. first_names es el nombre del resultado proporcionado por su SELECT DISTINCT , y fname es el nombre de la columna contenida dentro.
Sin comentar sobre la corrección de su consulta en general, la declaración corregida sería usar el nombre de columna correcto.
WITH first_names AS (SELECT DISTINCT fname FROM voters) SELECT name FROM nicknames WHERE groupi = ( SELECT nn.groupi FROM nicknames AS nn WHERE name = 'john' ) AND name != 'john' AND upper(name) = ANY (first_names.fname);