type_bridge.expressions.aggregate¶
aggregate
¶
Aggregate expressions for database-side calculations.
AggregateExpr
¶
Bases: Expression
Type-safe aggregate expression for database-side calculations.
Represents aggregations like sum(age), avg(score), count(*), etc.
Create an aggregate expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
attr_type
|
type[T] | None
|
Attribute type to aggregate (None for count) |
None
|
function
|
Literal['sum', 'mean', 'max', 'min', 'count', 'median', 'std']
|
Aggregation function (use 'mean' for TypeDB 3.x, not 'avg') |
'count'
|
field_name
|
str | None
|
Python field name (used for result keys, e.g., 'salary' → 'avg_salary') |
None
|
Note
The user-facing avg() method automatically converts to 'mean'. TypeDB 3.x uses 'mean' instead of 'avg'.
Source code in type_bridge/expressions/aggregate.py
to_value_ast
¶
Convert to AST FunctionCallValue.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
var
|
str | None
|
Variable name required for aggregate expressions (e.g., "$e") |
None
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If var is not provided (aggregates require context) |
Source code in type_bridge/expressions/aggregate.py
to_typeql
¶
Deprecated: Generate TypeQL pattern for this aggregation.
Source code in type_bridge/expressions/aggregate.py
get_fetch_key
¶
Get the key to use in fetch results.
Note
AUTOMATIC CONVERSION: TypeQL 'mean' → result key 'avg' For user-facing consistency, result keys use 'avg' even though TypeDB internally uses 'mean'. This matches the method name.
Returns:
| Type | Description |
|---|---|
str
|
String key for accessing aggregate result |
Example
Person.salary.avg() generates TypeQL 'mean($personsalary)' but result key is 'avg_salary' (using field name, not attribute type name)