聚合值最大值的数据查询
Datomic query for maximum of aggregated value
假设我有实体 author
以及许多相关的 book
实体。
获取图书数量最多的作者的查询是什么?
好的。由于我自己找到了答案 - 我将其张贴在这里以防有人搜索:
解决方案是构建两个数据查询,将第一个的输出传递给第二个。
(->>
(d/q '[:find (count ?b) ?a :where [?a :author/books ?b]] db)
(d/q '[:find (max ?count) ?a :in $ [?count ?a]] db))
据我所知,这是在 datomic 中处理不那么琐碎的查询的常用方法 - 将其拆分为几个子查询并链接在一起,让数据库完成它的工作。
假设我有实体 author
以及许多相关的 book
实体。
获取图书数量最多的作者的查询是什么?
好的。由于我自己找到了答案 - 我将其张贴在这里以防有人搜索:
解决方案是构建两个数据查询,将第一个的输出传递给第二个。
(->>
(d/q '[:find (count ?b) ?a :where [?a :author/books ?b]] db)
(d/q '[:find (max ?count) ?a :in $ [?count ?a]] db))
据我所知,这是在 datomic 中处理不那么琐碎的查询的常用方法 - 将其拆分为几个子查询并链接在一起,让数据库完成它的工作。