max()#
relationalai.std.aggregates
#max(*args: Producer, per: Optional[List[Producer]]) -> Expression
Calculates the maximum value produced by one or more Producer
objects.
Pass a list of Producer
objects to the optional per
parameter to group values and compute the maximum value per group.
Must be called in a rule or query context.
Parameters#
Returns#
An Expression
object.
Example#
#import relationalai as rai
from relationalai.std import aggregates
model = rai.Model("people")
Person = model.Type("Person")
with model.rule():
Person.add(name="Joe", age=39)
Person.add(name="Jane", age=40)
with model.query() as select:
person = Person()
max_age = aggregates.max(person.age)
response = select(max_age)
print(response.results)
# Output:
# result
# 0 40
To group values and compute the maximum for each group,
pass one or more Producer
objects to the optional per
parameter as a list.
In the following example, the person
object is passed to per
to compute the maximum age of a person’s friends:
#import relationalai as rai
from relationalai.std import aggregates
model = rai.Model("friends")
Person = model.Type("Person")
with model.rule():
joe = Person.add(name="Joe", age=39)
jane = Person.add(name="Jane", age=40)
john = Person.add(name="John", age=41)
joe.set(friend=jane).set(friend=john)
jane.set(friend=joe)
john.set(friend=joe)
with model.query() as select:
person = Person()
max_friend_age = aggregates.max(person.friend.age, per=[person])
response = select(person.name, max_friend_age)
print(response.results)
# Output:
# name result
# 0 Jane 39
# 1 Joe 41
# 2 John 39