cube(`month_over_month`, {
sql: `
SELECT 1 AS value, '2024-01-01'::TIMESTAMP AS date UNION ALL
SELECT 2 AS value, '2024-01-01'::TIMESTAMP AS date UNION ALL
SELECT 3 AS value, '2024-02-01'::TIMESTAMP AS date UNION ALL
SELECT 4 AS value, '2024-02-01'::TIMESTAMP AS date UNION ALL
SELECT 5 AS value, '2024-03-01'::TIMESTAMP AS date UNION ALL
SELECT 6 AS value, '2024-03-01'::TIMESTAMP AS date UNION ALL
SELECT 7 AS value, '2024-04-01'::TIMESTAMP AS date UNION ALL
SELECT 8 AS value, '2024-04-01'::TIMESTAMP AS date
`,
dimensions: {
date: {
sql: `date`,
type: `time`
}
},
measures: {
current_month_sum: {
sql: `value`,
type: `sum`
},
previous_month_sum: {
multi_stage: true,
sql: `${current_month_sum}`,
type: `number`,
time_shift: [{
interval: `1 month`,
type: `prior`
}]
},
month_over_month_ratio: {
multi_stage: true,
sql: `${current_month_sum} / NULLIF(${previous_month_sum}, 0)`,
type: `number`
}
}
})