1. 多条件查询分组样例
多条件查询{entity}对象类数据接口,支持分组查询,以查询files,以gtype分组举例如下:
entity=files
1.1. Body:
{
"condition": [], //查询条件见3.10.11多条件查询{entity}对象类数据接口参数说明
"grouping": { //分组统计
"collect": [
"gtype",
"size:5"
], //分组字段,可以是单个字段、多个字段组合,也可以是分段数据,分段数据的组间距以“:数字”表示,如size:5表示0-4、5-9等间距分组
"keep": [
"name",
"size"
], //分组后保留字段,不可有collect字段;可在select中返回keep或keep.name等,结果为数组
"count": "length", //聚合返回的数量,count字段可以自定义
"aggregate": { //聚合方法,使用字段必须在keep中定义,支持MAX(最大值)、MIN(最小值)、SUM(求和)、AVERAGE/AVG(求平均值)、FIRST(第一个值)、LAST(最后一个值)六种聚合函数
"maxSize": "MAX(size)", //取最大值
"minSize": "MIN(size)", //取最小值
"sum": "SUM(size)", //求和
"avg": "AVG(size)", //取平均值
"firstSize": "MIN(size)", //取最小值
"lastSize": "MIN(size)", //取最小值
},
"condition": [
{ //分组之后的字段筛选,condition、nestAnd、nestOr都支持,与未分组逻辑相同,但field必须是collect、count、aggregate中定义的字段
"field": "length",
"operator": ">=",
"value": "1",
"number": "true",
"logic": "And"
}
],
"sort": [
{
"sortby": "length", //分组聚合之后的排序字段,必须是collect、count、aggregate中定义的字段,可用多个字段排序
"order": "asc" //正序(asc)或倒序(desc),默认asc
}
]
},
"select": [
"gtype",
"maxSize",
"minSize",
"ROUND(avg)",
"length",
"keep",
"keep.name" //当使用grouping分组时,select字段必须是collect、aggregate、count字段,若未指定,返回配置中的collect、count、aggregate、字段和keep,keep为JSON数组,也可取keep的某个属性如keep.name。返回值支持ROUND函数,对结果四舍五入取整数
]
}
1.2. 结果如下:
{
"message": "请求处理成功",
"code": "SUCCESS",
"data": {
"data": [
{
"gtype": "documents",
"keep": [
{
"size": 960739,
"name": "3.2.1预生产.docx"
},
{
"size": 1030711,
"name": "response.pdf"
}
],
"length": 2,
"maxSize": 1030711,
"minSize": 960739,
"name": [
"3.2.1预生产.docx",
"response.pdf"
]
},
{
"gtype": "models",
"keep": [
{
"size": 42329391,
"name": "upgrade.ifc"
},
{
"size": 34262415,
"name": "样列模型_全专业.zip"
},
{
"size": 253579023,
"name": "中交国际-地上-13F以下[MEP]_R1502_CEN_-3.zip"
}
],
"length": 3,
"maxSize": 253579023,
"minSize": 34262415,
"name": [
"upgrade.ifc",
"样列模型_全专业.zip",
"中交国际-地上-13F以下[MEP]_R1502_CEN_-3.zip"
]
}
],
"count": 2
}
}