def _indicator(q: QueryBuilder, indicator: ReportIndicator, column: Column) -> QueryBuilder: if indicator.arithmetic == "sum": return q.select(fn.Sum(parse_parameter(column.parameter))) elif indicator.arithmetic == "avg": return q.select(fn.Avg(parse_parameter(column.parameter))) elif indicator.arithmetic == "max": return q.select(fn.Max(parse_parameter(column.parameter))) elif indicator.arithmetic == "min": return q.select(fn.Min(parse_parameter(column.parameter))) elif indicator.arithmetic == "count": return q.select(fn.Count(parse_parameter(column.parameter))) else: return q.select(fn.Max(parse_parameter(column.parameter)))
def _indicator(q: QueryBuilder, indicator: ReportIndicator, column: Column) -> QueryBuilder: column_param = parse_parameter(column.parameter) value_ = column_param.get("value") if indicator.arithmetic == "sum": return q.select(fn.Sum(value_)) elif indicator.arithmetic == "avg": return q.select(fn.Avg(value_)) elif indicator.arithmetic == "max": return q.select(fn.Max(value_)) elif indicator.arithmetic == "min": return q.select(fn.Min(value_)) elif indicator.arithmetic == "count": return q.select(fn.Count(value_)) else: return q.select(fn.Max(value_))
def _dimension(q: QueryBuilder, dimension: ReportDimension, column: Column): column_param = parse_parameter(column.parameter) value_ = column_param.get("value") return q.select(fn.Max(value_))
def _select(q: QueryBuilder, column: Column) -> QueryBuilder: param = parse_parameter(column.parameter) return q.select(param.get("value")).as_(column.alias)
def _select(q: QueryBuilder, column: Column) -> QueryBuilder: return q.select(parse_parameter(column.parameter)).as_(column.alias)
def _dimension(q: QueryBuilder, dimension: ReportDimension, column: Column): return q.select(fn.Max(parse_parameter(column.parameter)))