我对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中的外观如何。
是否有可能在一个LOOP中创建几个组(FILTER + COLLECT AGGREGATE s = SUM(从FILTER返回的集合))? 有什么想法吗?
答案 0 :(得分:2)
以下内容应在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 }