PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Django &Postgres – Perzentil (Median) und gruppieren nach

Sie können einen Median erstellen Unterklasse des Aggregate Klasse wie von Ryan Murphy (https://gist.github.com/rdmurphy/3f73c7b1826cacee34f6c2a855b12e2e ). Median funktioniert dann genauso wie Avg :

    from django.db.models import Aggregate, FloatField


    class Median(Aggregate):
        function = 'PERCENTILE_CONT'
        name = 'median'
        output_field = FloatField()
        template = '%(function)s(0.5) WITHIN GROUP (ORDER BY %(expressions)s)'

Um dann den Median eines Feldes zu finden, verwenden Sie

    my_model_aggregate = MyModel.objects.all().aggregate(Median('period'))

die dann als my_model_aggregate['period__median'] verfügbar ist .