是否可以用 datomic 编写这类查询?
- 找到最年长的孩子的名字
- 找到体重指数(体重/身高)最低的人
[:find (max ?tuple) :where
[?k :kid/age ?age]
[?k :kid/name ?name]
[(vector ?age ?name) ?tuple]
笔记:
表达式中属性的顺序(vector ?age ?name)
很重要
该查询返回单个结果,而我们可能期望一个集合,因为可能有许多年龄最大的孩子。您可以使用(max n ?tuple)
来实现这一点。
另请参阅http://docs.datomic.com/query.html中的聚合返回集合部分
如果您有更具体的想法,请在问题中提供更多详细信息并包含您的架构。