【发布时间】:2015-09-09 10:58:49
【问题描述】:
我需要对某个类的顶点属性执行分组聚合,但是 group by 字段是距当前节点两步之遥的顶点,我无法使其工作。
我的情况:
顶点 A 包含我要聚合的属性,并且有 n 个带有标签 references 的顶点。我要分组的顶点是这些顶点中的任何一个(B、C 或 D)如果该顶点具有到顶点 F 的 defined by 边。
A ----references--> B --defined by--> E
\---references--> C --defined by--> F
\--references--> D --defined by--> G
...
我认为可行的查询是:
select sum(property), groupOn from (
select property, out('references')[out('definedBy').@rid = F] as groupOn from AClass
) group by groupOn
但它不起作用,内部语句给了我一个不正确的奇怪响应(不返回任何顶点),我怀疑括号条件不支持out()(.@rid 的原因是我发现的文档声明只支持“=”。
out('references')[out('definedBy') contains F] 也不起作用,它返回 out('definedBy') 的 $current 顶点)。
有人知道如何实现这一目标吗?在我的示例中,我想要的结果是一列中的属性和另一列中 C 顶点的 @rid。然后我可以愉快地按聚合执行我的组。
【问题讨论】:
标签: sql group-by aggregate orientdb