Refs #28492 -- Defined aggregates' output_field at the class level.

Missed in 08654a99bb.
This commit is contained in:
Simon Charette 2017-09-29 00:37:49 -04:00 committed by Tim Graham
parent 4710753875
commit f1b713024e
1 changed files with 6 additions and 3 deletions

View File

@ -110,6 +110,7 @@ class Count(Aggregate):
function = 'COUNT'
name = 'Count'
template = '%(function)s(%(distinct)s%(expressions)s)'
output_field = IntegerField()
def __init__(self, expression, distinct=False, filter=None, **extra):
if expression == '*':
@ -118,7 +119,7 @@ class Count(Aggregate):
raise ValueError('Star cannot be used with filter. Please specify a field.')
super().__init__(
expression, distinct='DISTINCT ' if distinct else '',
output_field=IntegerField(), filter=filter, **extra
filter=filter, **extra
)
def _get_repr_options(self):
@ -141,10 +142,11 @@ class Min(Aggregate):
class StdDev(Aggregate):
name = 'StdDev'
output_field = FloatField()
def __init__(self, expression, sample=False, **extra):
self.function = 'STDDEV_SAMP' if sample else 'STDDEV_POP'
super().__init__(expression, output_field=FloatField(), **extra)
super().__init__(expression, **extra)
def _get_repr_options(self):
options = super()._get_repr_options()
@ -167,10 +169,11 @@ class Sum(Aggregate):
class Variance(Aggregate):
name = 'Variance'
output_field = FloatField()
def __init__(self, expression, sample=False, **extra):
self.function = 'VAR_SAMP' if sample else 'VAR_POP'
super().__init__(expression, output_field=FloatField(), **extra)
super().__init__(expression, **extra)
def _get_repr_options(self):
options = super()._get_repr_options()