zcaudate
zcaudate

Reputation: 14258

how would one write a datomic query that takes the entire set into account

Is it possible to write these sort of queries in datomic?

Upvotes: 7

Views: 661

Answers (1)

Grzegorz Luczywo
Grzegorz Luczywo

Reputation: 10502

[:find (max ?tuple) :where 
    [?k :kid/age ?age] 
    [?k :kid/name ?name] 
    [(vector ?age ?name) ?tuple]

Note:

  • the order of attributes in expression (vector ?age ?name) matters

  • the query returns single result while we might expect a collection because there may be many kids of age that is the maximum in the set. You can use (max n ?tuple) to achieve that.

See also the Aggregates Returning Collections section in http://docs.datomic.com/query.html

If you have something more specific in mind, provide more details in the question and include your schema.

Upvotes: 8

Related Questions