En Snowflake, puede escribir una UDF para automatizar muchas tareas repetitivas. Una de las cuales me gustaría escribir una función es poblar automáticamente Agrupar por 1,2,3,4,5... columnas. Francamente, tengo curiosidad por qué ninguna base de datos moderna lo hace, porque después de todo, debería ser relativamente fácil averiguar qué columna en el resultado es una dimensión y cuál es una agregación.
El UDF se puede escribir en Javascript o en algún otro tipo de lenguaje.
¿Alguna idea o sugerencia sobre cómo puedo proceder con esta idea?
Dicha funcionalidad es compatible con las macros dbt . Usando una macro de un paquete :
select field_1, field_2, field_3, field_4, field_5, count(*) from my_table {{ dbt_utils.group_by(5) }}Requiere saber de antemano cuántas columnas no agregadas existen. Más en: group_by
Tengo curiosidad por qué ninguna base de datos moderna lo hace, porque después de todo, debería ser relativamente fácil averiguar qué columna en el resultado es una dimensión y cuál es una agregación.
El equivalente más cercano es GROUP BY ALL de DuckDB: SQL más amigable con DuckDB