如何使用Klipfolio的Lookup Group和GroupBy完成JSON数据分组聚合
Klipfolio Lookup Group与GroupBy聚合操作实现方案
核心函数逻辑说明
- Lookup Group:用于将嵌套结构的JSON数据展开为平铺的结构化记录集,你提供的原始数据外层是预约ID作为键,每个键对应单条预约的详情,Lookup Group可以批量提取所有嵌套层级的目标字段,生成每一行对应一条预约记录的二维数据集,为后续聚合做准备。
- GroupBy:用于按指定的1个或多个维度对记录集做分组,同时对每个分组内的记录执行聚合计算(计数、求和、平均值等),本场景需要按「格式化后的年月」「预约类型」两个维度分组,统计每个分组的预约总数。
实操步骤
步骤1:用Lookup Group提取目标字段
针对你提供的JSON数据源,使用以下Lookup Group公式提取所需字段:LOOKUPGROUP(ROOT/(), "date", "type")
执行后你会得到两列平铺的原始数据:
| 原始日期(dd/mm/yyyy格式) | 预约类型 |
|---|---|
| 01/12/2000 | Rent Request |
| 03/09/2007 | Sale Request |
| 03/09/2007 | Rent Request |
| 10/09/2007 | Rent Request |
步骤2:转换日期格式
将原始dd/mm/yyyy格式的日期转换为你需要的「月份缩写+年份」格式,使用日期格式化函数处理:DATE( <上一步得到的原始日期列>, "dd/mm/yyyy", "mmm yyyy")
转换后日期列结果如下:
| 转换后日期 | 预约类型 |
|---|---|
| Dec 2000 | Rent Request |
| Sep 2007 | Sale Request |
| Sep 2007 | Rent Request |
| Sep 2007 | Rent Request |
步骤3:用GroupBy完成分组聚合
使用以下GroupBy公式完成双维度分组计数:GROUPBY( <转换后日期列>, <预约类型列>, COUNT(1) )
三个参数分别对应:第一分组维度(最终展示的Date列)、第二分组维度(最终展示的Type列)、聚合规则(统计每组记录数作为Count列)。
执行后即可得到你需要的最终结果:
| Date | Type | Count |
|---|---|---|
| Dec 2000 | Rent Request | 1 |
| Sep 2007 | Sale Request | 1 |
| Sep 2007 | Rent Request | 2 |
注:你示例输出中的「Sales Request」为笔误,原始数据中对应值为「Sale Request」,如果需要调整命名,可在分组前用字符串替换函数处理type列即可。
内容的提问来源于stack exchange,提问作者Peter Gould
相关产品推荐
相关产品推荐

