def __init__(self, aggregates, groups, from_obj, state_table,
state_group=None, prefix=None, suffix=None, schema=None):
"""
Args:
aggregates: collection of Aggregate objects.
from_obj: defines the from clause, e.g. the name of the table. can use
groups: a list of expressions to group by in the aggregation or a dictionary
pairs group: expr pairs where group is the alias (used in column names)
state_table: schema.table to query for comprehensive set of state_group entities
regardless of what exists in the from_obj
state_group: the group level found in the state table (e.g., "entity_id")
prefix: prefix for aggregation tables and column names, defaults to from_obj
suffix: suffix for aggregation table, defaults to "aggregation"
schema: schema for aggregation tables
The from_obj and group expressions are passed directly to the
SQLAlchemy Select object so could be anything supported there.
For details see:
http://docs.sqlalchemy.org/en/latest/core/selectable.html
Aggregates will have {collate_date} in their quantities substituted with the date
of aggregation.
"""
self.aggregates = aggregates
self.from_obj = make_sql_clause(from_obj, ex.text)
self.groups = groups if isinstance(groups, dict) else {str(g): g for g in groups}
self.state_table = state_table
self.state_group = state_group if state_group else "entity_id"
self.prefix = prefix if prefix else str(from_obj)
self.suffix = suffix if suffix else "aggregation"
self.schema = schema
评论列表
文章目录