分组(GroupbyItemType)
groupby 指定结果的维度分组,对应 SQL 的 GROUP BY 子句。接口结构如下:
标准写法
Logicform 支持多维分组,因此 groupby 通常是一个数组:
理解要点:
_id填写语义层中定义的维度名称。level控制时间或地域维度的粒度,例如year/month/day、省市/城市/区县。name可覆盖结果中的列名,常用于英文项目。schema用于跨模型下钻;系统会根据语义层映射自动补齐 JOIN。order手动指定枚举维度的排序顺序,避免依赖默认字典序。
_id 也可以写成带下划线的跨表字段路径,例如 门店_重点客户系统、物料_品牌_品类。这类路径的规则见 基础结构 中的“跨表字段路径”。
标准输入与归一化
LogicformType 中 groupby 的正式类型是 GroupbyItemType[]。因此:
- 标准 Logicform、落库结果和调试时,建议始终写成数组。
- 某些输入入口可能接受“单对象”或“字符串”简写,但在执行前应先归一化为
GroupbyItemType[]。 - 分段、分桶等高级需求通常会在上层流程中被归一化成标准
groupby项,GroupbyItemType本身没有operator字段。
下钻与内部字段
schema:这里的类型是SchemaType,主要用于“GroupbyItem 同时也作为下钻维度对象”这类内部场景,通常由系统补齐,不建议手写字符串。property:执行期补充的属性类型信息,用于记录该维度对应 property 的type/primal_type,一般不需要手写。
自定义排序(order)
对于枚举类型维度(如星期、季度、评价等级等),使用 order 字段指定自定义顺序:
没有 order 时,系统会按照默认字典序排列,可能导致"周五"排在"周一"之前。指定 order 后,排序和显示都会遵循数组顺序。
常见使用场景:
注意事项
- Logicform 不直接提供
LEFT JOIN的显式语法,语义层会按照字段的“引用关系”自动生成 LEFT JOIN,确保维度缺失时仍能返回NULL。 - 依赖时间层级时请确保语义层中已开启对应粒度,否则
level会被忽略。 - 当与
having、sort配合使用时,建议为每个分组维度设置稳定的name,以免多语言场景下出现列名冲突。

