排序与分页(SortType)

sort 控制 Logicform 结果的排序,语义与 SQL ORDER BY 一致。格式如下:

{
  "sort": {
    "销售额": -1,
    "日期": 1
  }
}
  • :需要排序的列名,通常是 preds / groupby 中的 name
  • 1 表示升序,-1 表示降序。
  • 顺序:对象从上到下依次生效,可实现多字段排序。

与分页配合

Logicform 支持 limitskiplimitBy 三种方式控制结果量:

{
  "limit": 20,
  "skip": 20,
  "sort": { "日期": -1 }
}

示例含义:按日期倒序返回第 2 页(21~40 条)。在使用 skip/limit 时务必提供稳定的排序字段,避免翻页数据重复或遗漏。

limitBy 适用于 ClickHouse 等支持「按组限制」的数据库,例如“每个地区只展示前 3 个城市”:

{
  "groupby": [
    "地区",
    "城市"
  ],
  "sort": { "销售额": -1 },
  "limitBy": 3
}

常见问题

  1. 字段不存在:请确认排序字段在 predsgroupby 中存在并设置了 name
  2. 多语言:对中文/英文双语项目,推荐统一 name,避免排序字段在不同语言下不一致。
  3. 仅排序不分页:可以只写 sort 而不写 limit,此时默认返回 20 条;如需全部返回,设置 limit: -1

更多 Logicform 字段可参考 基础结构 章节。