全部文档
文档中心DeepModel功能DeepQL查询语句基本语法

基本语法

DeepQL查询语句的基本语法如上图,类似其他查询语言,包含以下部分

  • select:查询内容,即查询的对象、属性/链接

  • filter:查询条件,即针对查询对象的过滤条件,是一个布尔表达式

  • order by:排序字段,按排序字段升序asc或降序desc(不指定默认为升序)对查询结果进行排序,可通过then设置多个排序字段

  • limit:限制数量,即限制查询结果的数量

基本语法例子

查询最近创建的10个高优先级功能需求的相关信息,包括:需求的ID、名称、状态、负责人和组件

注:查询时默认查询当前应用对应模块中的对象,如需查询非当前应用模块对象,即当前空间对应模块或当前空间其他应用对应模块中的对象,则需加上{所属模块}::前缀,例如:select spacezauoyn::SystemUser

select Requirement {
    req_id,
    req_name,
    req_status,
    req_owner,
    component
}
filter .req_type = 'func' and .priority = 'high'
order by .created_time desc
limit 10

基本语法 - 嵌套形式例子

查询链接即查询链接的目标对象,查询结果中默认包含目标对象的属性id,可通过嵌套形式指定查询目标对象的属性/链接。例如基于基本语法例子,查询需求负责人的名字、邮箱,以及组件的名称

select Requirement {
    req_id,
    req_name,
    req_status,
    req_owner: {person_name, system_user: {email}},
    component: {name}
}
filter .req_type = 'func' and .priority = 'high'
order by .created_time desc
limit 10

基本语法 - with区块例子

可在查询语句最前加入with区块,用于定义变量,包括传参、子查询等通用信息或中间计算结果,通过操作符:=进行变量赋值。可定义多个变量,通过逗号,分隔。例如:查询指定组件的需求信息,包括:需求的ID、名称、关联功能数量、已完成功能数量、已完成功能占比(即已完成功能数量 / 关联功能数量)

# 定义传参:指定组件
with comp_code := <str>$comp_code,
# 定义查询:计算指定组件需求的关联功能数量、已完成功能数量
ReqInfo := (select Requirement {
    req_id,
    req_name,
    feature_count := count(.<requirement[is Feature]),
    f_feature_count := count(.<requirement[is Feature] filter .feature_status = 'stat_5')
}
filter .component.code = comp_code)
# 基于查询结果计算:已完成功能占比 = 已完成功能数量 / 关联功能数量
select ReqInfo {
    req_id,
    req_name,
    feature_count,
    f_feature_count,
    ratio := .f_feature_count / .feature_count if .feature_count != 0 else 0
}

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send