Feidhmeanna comhiomlánaithe sonracha PostgreSQLLink to this heading
Tá na feidhmeanna seo ar fáil ón modúl django.contrib.postgres.aggregates. < https://www.postgresql.org/docs/current/functions-aggregate.html>Déantar cur síos níos mionsonraithe orthu sna doiciméid PostgreSQL.
Feidhmeanna comhiomlánchuspóireachLink to this heading
ArrayagLink to this heading
- class ArrayAgg(expression, distinct=False, filter=None, default=None, order_by=(), **extra)Link to this definition
Tugann sé liosta luachanna, lena n-áirítear neamhaill, atá comhcheangailte i sraith, nó
réamhshocraithemura bhfuil aon luachanna ann.- distinctLink to this definition
Argóint boolean roghnach a chinneann an mbeidh luachanna eagar ar leith. Réamhshocraithe go
False.
- order_byLink to this definition
-
Sreang roghnach d'ainm réimse (le réimír roghnach
” -"a léiríonn ord íslitheach) nó abairt (nó liosta teaghráin agus/nó nathanna) a shonraíonn ordú na n-eilimintí sa liosta torthaí.Samplaí:
from django.db.models import F ArrayAgg("a_field", order_by="-some_field") ArrayAgg("a_field", order_by=F("some_field").desc())
BitandLink to this heading
- class BitAnd(expression, filter=None, default=None, **extra)Link to this definition
Filleann sé
intde ghiotánANDde na luachanna ionchuir neamh-null go léir, nódefaultmá tá na luachanna go léir neall.
BitorLink to this heading
- class BitOr(expression, filter=None, default=None, **extra)Link to this definition
Filleann sé
intden OR` bitwise de na luachanna ionchuir neamh-null go léir, nódefaultmá tá na luachanna go léir niall.
BitxorLink to this heading
- class BitXor(expression, filter=None, default=None, **extra)Link to this definition
Filleann sé
intden XOR` bitwise de na luachanna ionchuir neamh-null go léir, nódefaultmá tá na luachanna go léir niall. Éilíonn sé PostgreSQL 14 +.
BoolandLink to this heading
- class BoolAnd(expression, filter=None, default=None, **extra)Link to this definition
Tugann sé
True, má tá na luachanna ionchuir go léir fíor,defaultmá tá na luachanna go léir null nó mura bhfuil aon luachanna ann, ar shlí eileFalse.Sampla úsáide:
class Comment(models.Model): body = models.TextField() published = models.BooleanField() rank = models.IntegerField()>>> from django.db.models import Q >>> from django.contrib.postgres.aggregates import BoolAnd >>> Comment.objects.aggregate(booland=BoolAnd("published")) {'booland': False} >>> Comment.objects.aggregate(booland=BoolAnd(Q(rank__lt=100))) {'booland': True}
BoolorLink to this heading
- class BoolOr(expression, filter=None, default=None, **extra)Link to this definition
Tugann sé
Truemá tá luach ionchuir amháin ar a laghad fíor,defaultmá tá na luachanna go léir niall nó mura bhfuil aon luachanna ann, ar shlí eileFalse.Sampla úsáide:
class Comment(models.Model): body = models.TextField() published = models.BooleanField() rank = models.IntegerField()>>> from django.db.models import Q >>> from django.contrib.postgres.aggregates import BoolOr >>> Comment.objects.aggregate(boolor=BoolOr("published")) {'boolor': True} >>> Comment.objects.aggregate(boolor=BoolOr(Q(rank__gt=2))) {'boolor': False}
JsonbagLink to this heading
- class JSONBAgg(expressions, distinct=False, filter=None, default=None, order_by=(), **extra)Link to this definition
Tugann na luachanna ionchuir ar ais mar shraith
JSON, nódefaultmura bhfuil aon luachanna ann. <jsonfield.key>Is féidir leat an toradh a cheistiú ag baint úsáid:lookup: `eochair agus innéacs cuardaigh `.- distinctLink to this definition
Argóint boolean roghnach a chinneann an mbeidh luachanna eagar ar leith. Réamhshocraithe go
False.
- order_byLink to this definition
-
Sreang roghnach d'ainm réimse (le réimír roghnach
” -"a léiríonn ord íslitheach) nó abairt (nó liosta teaghráin agus/nó nathanna) a shonraíonn ordú na n-eilimintí sa liosta torthaí.Examples are the same as for
ArrayAgg.order_by.
Sampla úsáide:
class Room(models.Model): number = models.IntegerField(unique=True) class HotelReservation(models.Model): room = models.ForeignKey("Room", on_delete=models.CASCADE) start = models.DateTimeField() end = models.DateTimeField() requirements = models.JSONField(blank=True, null=True)>>> from django.contrib.postgres.aggregates import JSONBAgg >>> Room.objects.annotate( ... requirements=JSONBAgg( ... "hotelreservation__requirements", ... order_by="-hotelreservation__start", ... ) ... ).filter(requirements__0__sea_view=True).values("number", "requirements") <QuerySet [{'number': 102, 'requirements': [ {'parking': False, 'sea_view': True, 'double_bed': False}, {'parking': True, 'double_bed': True} ]}]>
StringagLink to this heading
- class StringAgg(expression, delimiter, distinct=False, filter=None, default=None, order_by=())Link to this definition
Filleann sé na luachanna ionchuir atá comhcheangailte i sreang, scartha leis an teaghrán
delimiter, nódefaultmura bhfuil aon luachanna ann.- delimiterLink to this definition
Argóint riachtanach. Caithfidh a bheith ina shreang.
- distinctLink to this definition
Argóint roghnach boolean a chinneann an mbeidh luachanna comhtháite ar leith. Réamhshocraithe go
False.
- order_byLink to this definition
-
Sreang roghnach d'ainm réimse (le réimír roghnach
” -"a léiríonn ord íslitheach) nó abairt (nó liosta teaghráin agus/nó nathanna) a shonraíonn ordú na n-eilimintí sa sreangán torthaí.Examples are the same as for
ArrayAgg.order_by.
Sampla úsáide:
class Publication(models.Model): title = models.CharField(max_length=30) class Article(models.Model): headline = models.CharField(max_length=100) publications = models.ManyToManyField(Publication)>>> article = Article.objects.create(headline="NASA uses Python") >>> article.publications.create(title="The Python Journal") <Publication: Publication object (1)> >>> article.publications.create(title="Science News") <Publication: Publication object (2)> >>> from django.contrib.postgres.aggregates import StringAgg >>> Article.objects.annotate( ... publication_names=StringAgg( ... "publications__title", ... delimiter=", ", ... order_by="publications__title", ... ) ... ).values("headline", "publication_names") <QuerySet [{ 'headline': 'NASA uses Python', 'publication_names': 'Science News, The Python Journal' }]>
Feidhmeanna comhiomlána leLink to this heading
y agus xLink to this heading
Is féidir leis na hargóintí y agus x do na feidhmeanna seo go léir a bheith ina ainm réimse nó abairt ar ais sonraí uimhriúla. Tá an dá cheann ag teastáil.
CorrLink to this heading
- class Corr(y, x, filter=None, default=None)Link to this definition
Tugann an comhéifeacht comhghaoil ar ais mar
snám, nóréamhshocraithemura bhfuil aon sraitheanna meaitseála ann.
CovarpopLink to this heading
- class CovarPop(y, x, sample=False, filter=None, default=None)Link to this definition
Tugann an comhathracht daonra ar ais mar
snám, nóréamhshocraithemura bhfuil aon sraitheanna meaitseála ann.- sampleLink to this definition
Roghnach. De réir réamhshocraithe filleann
Covarpopan coathraitheacht ghinearálta daonra. Mar sin féin, má tásample=True, is é an luach tuairisceáin an coathraitheacht daonra samplach.
RegraVGXLink to this heading
- class RegrAvgX(y, x, filter=None, default=None)Link to this definition
Tugann sé meán an athróg neamhspleách (
sum (x) /N) ar ais marsnám`, nó ``réamhshocraithemura bhfuil aon sraitheanna meaitseála ann.
RegravgiLink to this heading
- class RegrAvgY(y, x, filter=None, default=None)Link to this definition
Tugann sé meán an athróg cleithiúnach (
sum (y) /N) ar ais marsnám`, nó ``réamhshocraithemura bhfuil aon sraitheanna meaitseála ann.
RegrCountLink to this heading
- class RegrCount(y, x, filter=None)Link to this definition
Filleann sé ``int ``de líon na sraitheanna ionchuir nach bhfuil an dá abairt neall.
RegRinterceptLink to this heading
- class RegrIntercept(y, x, filter=None, default=None)Link to this definition
Tugann sé an t-idirghabháil y den chothromóid líneach is lú atá oiriúnach cearnach arna chinneadh ag na péirí
(x, y)marsnáth, nóréamhshocraithemura bhfuil aon sraitheanna meaitseála ann.
RegRr2Link to this heading
- class RegrR2(y, x, filter=None, default=None)Link to this definition
Tugann cearnóg an chomhéifeacht comhghaoil ar ais mar
snám`, nó ``réamhshocraithemura bhfuil aon sraitheanna meaitseála ann.
RegrSlopeLink to this heading
- class RegrSlope(y, x, filter=None, default=None)Link to this definition
Tugann fána an chothromóid líneach is lú atá oiriúnach cearnach a chinneadh ag na péirí
(x, y)marsnámh ``, nó ``réamhshocraithemura bhfuil aon sraitheanna meaitseála ann.
RegRsXXLink to this heading
- class RegrSXX(y, x, filter=None, default=None)Link to this definition
Tugann
sum (x ^ 2) - suim (x) ^2/N(“suim na gcearnóga” den athróg neamhspleách) marsnám, nó réamhshocraithe` mura bhfuil aon sraitheanna meaitseála ann.
RegrsXYLink to this heading
- class RegrSXY(y, x, filter=None, default=None)Link to this definition
Tuairisceáin
suim (x*y) - suim (x) * suim (y) /N(“suim táirgí” d'athróg neamhspleách ag brath ar amanna) marsnám, nóréamhshocraithemura bhfuil aon sraitheanna meaitseála ann.
RegrsyyLink to this heading
- class RegrSYY(y, x, filter=None, default=None)Link to this definition
Tuairisceann
sum (y ^ 2) - suim (y) ^2/N(“suim na gcearnóga” den athróg cleithiúnach) marsnám, nóréamhshocraithemura bhfuil aon sraitheanna meaitseála ann.
Samplaí úsáideLink to this heading
Úsáidfimid an tábla sampla seo:
| FIELD1 | FIELD2 | FIELD3 |
|--------|--------|--------|
| foo | 1 | 13 |
| bar | 2 | (null) |
| test | 3 | 13 |
Seo roinnt samplaí de chuid de na feidhmeanna comhiomlánaithe ginearálchuspóireach:
>>> 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']}
Taispeánann an chéad sampla eile úsáid feidhmeanna comhiomlán staitistiúla. < https://en.wikipedia.org/wiki/Regression_analysis>Ní dhéanfar cur síos ar an mhatamaitic bhunúsach (is féidir leat léamh faoi seo, mar shampla, ag wikipedia):
>>> 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}