Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

144
Vistas
ARRAY_REMOVE() en copo de nieve?

Postgresql tiene la función ARRAY_REMOVE para eliminar elementos de una matriz. ¿Cómo puedo hacer esto en Snowflake?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

El enfoque UDF funciona bien, aquí hay otro enfoque si desea:

  • Utilice el increíble almacenamiento en caché de copos de nieve que no funciona si usa UDF
  • Simplemente escriba SQL simple
  • El orden de la matriz no está garantizado

Dependiendo del caso de uso ... Si no es probable que se beneficie del almacenamiento en caché y desea un código de aspecto 'más limpio', entonces el UDF podría ser mejor; sin embargo, si es probable que se beneficie del almacenamiento en caché, prefiera solo SQL, entonces tal vez este enfoque pueda sé útil.

FLATTEN the ARRAY -> Predicate data -> Return via ARRAY_AGG

 SELECT ARRAY_AGG(VALUE) REMOVED FROM CTE, LATERAL FLATTEN(AN_ARRAY) WHERE VALUE!='A'

ingrese la descripción de la imagen aquí

Los mismos ejemplos funcionan bien.

 select array_agg(value) from table(flatten(input => parse_json('["a", "b", "c", "a"]'))) where value not in ('a'); select array_agg(value) from table(flatten(input => parse_json('[4, 1, 4, 2, 3, 4]'))) where value not in (4); select array_agg(value) from table(flatten(input => parse_json('[4.3, 1.1, 4.2, 0.1, 3.3, 0.2]'))) where value not in (0.2);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede crear una UDF JS. Para que funcione con cualquier tipo, deberá convertir el valor que se eliminará en la variante:

 CREATE OR REPLACE FUNCTION array_remove_js(ARR variant, VAL variant) returns array language javascript as ' return ARR.filter(function(item) { return item !== VAL }) ';

Probando con cadenas, enteros y flotantes:

 select array_remove_js(parse_json('["a", "b", "c", "a"]'), 'a'::variant); select array_remove_js(parse_json('[4, 1, 4, 2, 3, 4]'), 4::variant); select array_remove_js(parse_json('[4.3, 1.1, 4.2, 0.1, 3.3, 0.2]'), 0.2::variant);
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda