OrientDB - 连接两个字符串并聚合它们

OrientDB - Concatenate two strings and aggregate them

通常,如果我想连接两个字符串并应用聚合,我会遵循以下语法:

Sql 服务器

SELECT substring(t.field, 1, 3) + substring(t.field, 5,7), count(*)
FROM myTable t
GROUP BY substring(t.field, 1, 3) + substring(t.field, 5,7)

甲骨文

SELECT CONCAT(substring(t.field, 1, 3), substring(t.field, 5,7)), count(*)
FROM myTable t
GROUP BY CONCAT(substring(t.field, 1, 3), substring(t.field, 5,7))

在 OrientDB 中,是否可以连接两个字符串并得到它们的聚合?

试试这个,OrientDb 的解析器和查询执行器有时可能会有点挑剔,特别是对于 group by 选项,这将在 'Strict mode' 禁用的情况下工作(studio -> log in -> db -> 底部的第二个标签)

SELECT id,  $goofy , count(*) as cont from myTable
LET $sub = id.subString(4),
$goofy = id.subString(1,3).append($sub)
group by $goofy

注意: 我将代码拆分为 2 个变量,因为解析器在解析 .append 中的函数时遇到了一些问题 我很确定在 Orientdb 的下一个版本中,此类问题将得到解决(他们已经开发了一个新的解析器)