Public
Edited
May 3, 2024
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
sueldos_confianza = aq.from(sabana)
.filter(d => (d.NUM_CUENTA_4x === 1114) & (d.DESCRIPCION !== null))
.groupby('NUM_CUENTA_4x', 'DESCRIPCION')
.rollup(year_cols.reduce((acc, year) => Object({...acc, [year]: op.sum(year)}), {})) // just loop for
.fold(year_cols, {as: ['year', 'cantidad']}).derive({'year': d => +d.year, 'cantidad': d => d.cantidad * 1e3}) // cast year, unscale cantidad
Insert cell
Insert cell
Insert cell
Insert cell
sueldos_confianza_by_fondo = aq.from(sabana)
.filter(d => (d.NUM_CUENTA_4x === 1114) & (d.DESCRIPCION !== null))
.groupby('NUM_CUENTA_4x', 'DESCRIPCION','Fondo')
.rollup(year_cols.reduce((acc, year) => Object({...acc, [year]: op.sum(year)}), {})) // just loop for op.sum for each year
.fold(year_cols, {as: ['year', 'cantidad']}).derive({'year': d => +d.year, 'cantidad': d => d.cantidad * 1e3}) // cast year, unscale cantidad
.orderby('Fondo')
Insert cell
## Sueldos de puestos por confianza por agencia y fondo
Insert cell
Insert cell
sueldos_confianza_by_agencia_fondo = aq.from(sabana)
.filter(d => (d.NUM_CUENTA_4x === 1114) & (d.DESCRIPCION !== null))
.groupby('NUM_CUENTA_4x', 'DESCRIPCION','Budget Unit', 'NEG', 'Nombre Agencia','Nombre Negociado', 'Fondo')
.rollup(year_cols.reduce((acc, year) => Object({...acc, [year]: op.sum(year)}), {})) // just loop for op.sum for each year
.fold(year_cols, {as: ['year', 'cantidad']}).derive({'year': d => +d.year, 'cantidad': d => d.cantidad * 1e3}) // cast year, unscale cantidad
.orderby('Budget Unit', 'NEG', 'Fondo')
Insert cell
Insert cell
Insert cell
Insert cell
consulta_puestos_confianza_by_year = aq.from(consulta_puestos_confianza)
.groupby('year')
.rollup({
'Total': op.sum('Total'),
'Total Confianza': op.sum('Total Confianza'),
})
.derive({
'Porciento Confianza': d => d['Total Confianza'] / d['Total'],
})
.orderby('year')
Insert cell
initialdb
Type SQL, then Shift-Enter. Ctrl-space for more options.

Insert cell
Insert cell
initialdb
from sabana
Insert cell
initialdb
from consulta_puestos_confianza
Insert cell
year_cols = {
let year_regex = /^\d+$/
return sabana.schema.map(d => d.name).filter(d => year_regex.test(d))
}
Insert cell
// db = initialdb.sql`
// create or replace table
// `
Insert cell
initialdb = DuckDBClient.of({
sabana: FileAttachment("sabana_expanded_latest_2024_03_25_FY2015_gastado_FY2025_propuesto.parquet"),
consulta_puestos_confianza: FileAttachment("consulta_puestos_confianza.parquet"),
})
Insert cell
import {aq, op} from '@uwdata/arquero'
Insert cell

One platform to build and deploy the best data apps

Experiment and prototype by building visualizations in live JavaScript notebooks. Collaborate with your team and decide which concepts to build out.
Use Observable Framework to build data apps locally. Use data loaders to build in any language or library, including Python, SQL, and R.
Seamlessly deploy to Observable. Test before you ship, use automatic deploy-on-commit, and ensure your projects are always up-to-date.
Learn more