, arr_status
, arr_vals
, arrayCumSum(arr_vals)
FROM ( SELECT 'problem' as ver
, [1,2,5] AS arr_status
, [10,20,50] AS arr_vals
UNION ALL
SELECT 'full' as ver
, [1,2,3,4,5] AS arr_status
, [10,20,30,40,50] AS arr_vals) AS data
У меня есть подзапрос который генерирует 5 статусов arr_status в порядке увеличения и для каждого статуса считает метрику arr_vals
В основном запросе мне нужно посчитать кумулятивно сумму метрики arr_vals
Столкнулся с тем что иногда у меня не полный набор статусов получаеться, например как тут в problem
Сейчас для problem строки я получаю [10,30,80]
хотя хотел бы получить [10,30,30,30,80]
Подскажите как это можно решить?
у тебя статусы заранее известны? типа есть 5 статусов [1,2,3,4,5]?
Сейчас кажется что нужно как-то так: WITH ([1,2,3,4,5]) AS corect_funnel SELECT ver , arr_status , corect_funnel , arr_vals , arrayCumSum(arr_vals) , array(tuple(arr_status, arr_vals, corect_funnel)) AS arr_tuple , arrayFilter(x -> (x.1) , arr_tuple) as res FROM ( SELECT 'problem' as ver , [1,2,5] AS arr_status , [10,20,50] AS arr_vals UNION ALL SELECT 'full' as ver , [1,2,3,4,5] AS arr_status , [10,20,30,40,50] AS arr_vals) AS data Но пока не получаеться)
Обсуждают сегодня