聚合值最大值的数据查询

标签 datomic datalog

假设我有实体 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 中处理不太琐碎的查询的常用方法 - 将其拆分为几个子查询并链接在一起,让数据库完成它的工作。

关于聚合值最大值的数据查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28756852/

相关文章:

prolog - 数据记录分层

c# - 使用计时器逐行读取文本文件

clojure - 数据查询 : find all entities with some value

database - 如何防止事务违反 Datomic 中的应用程序不变量

cassandra - datomic 自托管、分布式存储选项的比较?

datomic - Datomic 位于 CAP 三角的哪个位置?

charts - 绘制 Datomic 事实随时间变化的值(value)图表

datalog - Datalog 和 LogiQL 有什么区别?

z3 - Z3 中的固定点