티스토리 수익 글 보기
Fonctions d’agrégation spécifiques à PostgreSQL¶
Ces fonctions sont disponibles dans le module django.contrib.postgres.aggregates. Elles sont décrites plus en détails dans la documentation PostgreSQL.
Note
Toutes ces fonctions n’ont pas d’alias par défaut, il faut donc en indiquer un explicitement. Par exemple :
>>> SomeModel.objects.aggregate(arr=ArrayAgg('somefield'))
{'arr': [0, 1, 2]}
Options communes d’agrégation
Tous les agrégats disposent du paramètre nommé filter.
Fonctions d’agrégation d’ordre général¶
ArrayAgg¶
-
class
ArrayAgg(expression, distinct=False, filter=None, ordering=(), **extra)[source]¶ Renvoie une liste de valeurs, y compris nulles, concaténées dans un tableau.
-
distinct¶ Un paramètre booléen facultatif qui détermine si les valeurs de tableau seront distinctes.
Falsepar défaut.
-
ordering¶ - New in Django 2.2.
Une chaîne facultative d’un nom de champ (précédé d’un préfixe
"-"facultatif pour indiquer un ordre décroissant) ou une expression (ou un tuple/liste de chaînes ou d’expressions) qui indique le tri des éléments de la liste résultante.Exemples :
'some_field' '-some_field' from django.db.models import F F('some_field').desc()
-
BitAnd¶
BitOr¶
BoolAnd¶
BoolOr¶
JSONBAgg¶
StringAgg¶
-
class
StringAgg(expression, delimiter, distinct=False, filter=None, ordering=())[source]¶ Renvoie les valeurs d’entrée concaténées dans une chaîne, séparées par la chaîne
delimiter.-
delimiter¶ Paramètre obligatoire. Doit être une chaîne.
-
distinct¶ Un paramètre booléen facultatif qui détermine si les valeurs concaténées seront distinctes.
Falsepar défaut.
-
ordering¶ - New in Django 2.2.
Une chaîne facultative d’un nom de champ (précédé d’un préfixe
"-"facultatif pour indiquer un ordre décroissant) ou une expression (ou un tuple/liste de chaînes ou d’expressions) qui indique le tri des éléments de la chaîne résultante.Les exemples sont les mêmes que pour
ArrayAgg.ordering.
-
Fonctions d’agrégation à but statistique¶
y et x¶
Les paramètres y et x de toutes ces fonctions peuvent être un nom de champ ou une expression renvoyant une donnée numérique. Les deux sont obligatoires.
Corr¶
CovarPop¶
-
class
CovarPop(y, x, sample=False, filter=None)[source]¶ Renvoie la covariance de population sous forme de nombre
float, ouNonesi aucune ligne ne correspond.Accepte un paramètre facultatif :
-
sample¶ Par défaut,
CovarPoprenvoie la covariance de population générale. Cependant, sisample=True, la valeur renvoyée sera la covariance d’échantillon de population.
-
RegrAvgX¶
RegrAvgY¶
RegrCount¶
RegrIntercept¶
RegrR2¶
RegrSlope¶
RegrSXX¶
RegrSXY¶
Exemples d’utilisation¶
Nous allons utiliser cette table d’exemple :
| FIELD1 | FIELD2 | FIELD3 |
|--------|--------|--------|
| foo | 1 | 13 |
| bar | 2 | (null) |
| test | 3 | 13 |
Voici quelques exemples de certaines des fonctions d’agrégation d’ordre général :
>>> TestModel.objects.aggregate(result=StringAgg('field1', delimiter=';'))
{'result': 'foo;bar;test'}
>>> TestModel.objects.aggregate(result=ArrayAgg('field2'))
{'result': [1, 2, 3]}
>>> TestModel.objects.aggregate(result=ArrayAgg('field1'))
{'result': ['foo', 'bar', 'test']}
L’exemple suivant montre l’utilisation des fonctions d’agrégats pour les statistiques. Les mathématiques sous-jacentes ne sont pas expliquées (vous pouvez vous renseigner à ce sujet sur Wikipédia par exemple) :
>>> TestModel.objects.aggregate(count=RegrCount(y='field3', x='field2'))
{'count': 2}
>>> TestModel.objects.aggregate(avgx=RegrAvgX(y='field3', x='field2'),
... avgy=RegrAvgY(y='field3', x='field2'))
{'avgx': 2, 'avgy': 13}
Informations supplémentaires
Support Django!
Sommaire
Obtenir de l’aide
- FAQ
- Essayez la FAQ, vous y trouverez des réponses à de nombreuses questions courantes.
- Index, Index des modules, or Sommaire
- Pratique lorsqu’on cherche des informations précises.
- Django Discord Server
- Join the Django Discord Community.
- Official Django Forum
- Join the community on the Django Forum.
- Ticket tracker
- Signalez des bogues de Django ou de sa documentation dans notre système de suivi de tickets.
Télécharger :
Hors ligne (Django 2.2) :
HTML |
PDF |
ePub
Offert par Read the Docs.