如何在Palantir Contour中填充首值前的Counter列空缺?
Palantir Contour 表达式构建器:填充首有效Counter值前的空缺为该值减1
需求回顾
现有表格需填充Counter列空缺,要求首个有效值之前的行填充为该首值减1,其余空缺用对应分组的首个Counter值填充。
已完成步骤
你已经通过以下操作生成了group和fillgap列:
- 创建
group列,以每个非空Counter值为分组起点:
sum(case when "Counter" NOT NULL then 1 else 0 end) OVER ( ORDER BY "Date" ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW )
- 创建
fillgap列,填充各分组的首个Counter值:
first("Counter") OVER ( PARTITION BY "group" ORDER BY "Date" ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW )
解决group=0行的填充问题
要将group=0的行填充为首个有效Counter值减1,只需修改fillgap的表达式,结合first_value窗口函数获取全局首个非空Counter值,再用case分支处理分组:
最终fillgap表达式:
case when "group" = 0 then first_value("Counter") OVER ( ORDER BY "Date" ASC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) - 1 else first("Counter") OVER ( PARTITION BY "group" ORDER BY "Date" ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) end
最终结果
替换后得到的完整表格如下:
| Date | Counter | group | fillgap |
|---|---|---|---|
| 1.10.2022 | 0 | 2 | |
| 2.10.2022 | 0 | 2 | |
| 3.10.2022 | 3 | 1 | 3 |
| 5.10.2022 | 1 | 3 | |
| 6.10.2022 | 1 | 3 | |
| 8.10.2022 | 4 | 2 | 4 |
| 10.10.2022 | 2 | 4 | |
| 12.10.2022 | 5 | 3 | 5 |
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

