ArangoDB 按组求和

ArangoDB sum by groups

我对 ArangoDB 查询没有什么问题。在 postgres 中,我做得很快而且没有问题:

SELECT SUM(x) from table GROUP BY
  case
   when age < 18 then 'Under 18'
   when age between 18 and 24 then '18-24'
   when age between 25 and 67 then '25-67'
   when age between 68 and 100 then '68-100'
 END

我想比较在 postgres 和 arango 中执行此操作的时间,但是...我不知道它在 arango 中应该是什么样子。

是否可以在一个循环中创建几个组 (FILTER + COLLECT AGGREGATE s = SUM(set return from FILTER))? 有什么想法吗?

以下应该适用于 AQL:

FOR doc IN collection
  COLLECT group = (doc.age < 18 ? "Under 18" : 
                   (doc.age >= 18 && doc.age <= 24 ? "18-24" : 
                    (doc.age >= 25 && doc.age <= 67 ? "25-67" : 
                     (doc.age >= 68 && doc.age <= 100 ? "68-100" : "other" ))))
  AGGREGATE s = SUM(doc.x)
  RETURN { group, s }