修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

怎么在一句 uql 里实现两个非同源数据列的和

回答此问题
未解决
wanyisun2022-04-13
我的图:


我的uql:

n(1).e(as e1).n() with e1
n(2).e(as e2).n() with e2  
return sum(e1._uuid + e2._uuid)

我想把两个模板中的边的 uuid 相加,也就是(1+2)+(3+4+5+6)= 21,但是运行出来的数字比 21 小很多。这是为什么呢?
sum非同源列

1 个回答

  • 1 点赞

    同学你好,

    你前两个模板查询语句,只有路径起点的过滤条件不一样,而路径的其他参数均一样(同样的边数、同样的点边过滤条件),所以最简单的做法是把这两句合并为一句:

    n([1,2]).e(as e).n()
    return sum(e._uuid)

    但正如你标题中说的,如果是两个数值类的非同源数据列该怎么求和呢?最直接的思路是把两列分别求和后再相加:

    n(1).e(as e1).n() with sum(e1._uuid) as sum1
    n(2).e(as e2).n() with sum(e2._uuid) as sum2
    return sum1 + sum2

    你原先的写法问题在于,由于 e1 和 e2 两个数据列的长度不同,e1 的长度是 2,e2 的长度是 4,当你把 e1._uuid 和 e2_uuid 对应相加时,e2 多出来的两行数据被舍弃,导致计算出来的 sum 值比期望的小。

    Ultipa Admin 2022-04-15
    添加评论...

    取消
    提交

你的回答:

提交
取消