Skip to main content
django-aggregates
=================
Aggregate, String and Conditional SQL functions to use into Annotate and Aggregate methods. Any kind of contribitions and ideas are welcome.

Installation
=================
pip install django-aggregates

Usage
=================
>> from aggregates import StringAgg
>> People.objects.aggregate(names=StringAgg('name', delimiter(', ')))
>> {'names': 'Walter, The Dude, Donny, Jesus'}

>> from aggregates import As
>> People.objects.values('address__title').annotate(prettyname=As('address__title')).values('prettyname')
>> [{'prettyname': 'someadress1'}, {'prettyname': 'someaddress2'}]

>> from aggregates.strings import CharLength
>> People.objects.annotate(char_len=CharLength('name')).filter(char_len__gt=6)
>> [<People: Walter>, <People: The Dude>]

>> from aggregates.conditionals import Coalesce, NullIf
>> person=People.objects.annotate(null_if=NullIf('name', othercol='surname'))[0]
>> person.null_if
>> 'Walter'
>> person=People.objects.annotate(coalesce=Coalesce('age', default=18))[0]
>> person.coalesce
>> 18
>> person.age
>>

Available Functions
=================
Aggregates:

from aggregates import ...
- As
- BitAnd
- BitOr
- BoolAnd **# Only PostgreSQL**
- BoolOr **# Only PostgreSQL**
- Every **# Only PostgreSQL**
- StringAgg **# Only PostgreSQL**
- XMLAgg **# Only PostgreSQL**
- Corr **# Only PostgreSQL**
- CovarPop **# Only PostgreSQL**
- CovarSamp **# Only PostgreSQL**
- RegrAvgX **# Only PostgreSQL**
- RegrAvgY **# Only PostgreSQL**
- RegrCount **# Only PostgreSQL**
- RegrIntercept **# Only PostgreSQL**
- RegrR2 **# Only PostgreSQL**
- RegrSlope **# Only PostgreSQL**
- RegrSXX **# Only PostgreSQL**
- RegrSXY **# Only PostgreSQL**
- RegrSYY **# Only PostgreSQL**
- Mode **# Only PostgreSQL 9.4+**
- PercentileCont **# Only PostgreSQL 9.4+**
- PercentileDisc **# Only PostgreSQL 9.4+**

Strings:

from aggregates.string import ...
- BitLength
- CharLength
- CharacterLength
- OctetLength
- Lower
- Upper
- Ascii
- Length
- MD5 **# Only PostgreSQL**

Conditionals:

from aggregates.conditionals import ...
- NullIf
- Coalesce **# Only PostgreSQL**

Requirements
==================================
- Django 1.2+

TODO
=================
- UnitTests.
- More detailed informations about functions.
- JSON functions and operations

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-aggregates-0.1.3.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_aggregates-0.1.3-py2-none-any.whl (8.5 kB view details)

Uploaded Python 2

File details

Details for the file django-aggregates-0.1.3.tar.gz.

File metadata

File hashes

Hashes for django-aggregates-0.1.3.tar.gz
Algorithm Hash digest
SHA256 9daf619caca866ef5c84b0216f59f929341efbb18b7dbe748f376efb0cad53a7
MD5 cb92ea59c0d87b4325d8f4c643558145
BLAKE2b-256 2a40dcf66841f61bbc00fb74e3bec831653fef03819ffee37ad9e05358fd3684

See more details on using hashes here.

File details

Details for the file django_aggregates-0.1.3-py2-none-any.whl.

File metadata

File hashes

Hashes for django_aggregates-0.1.3-py2-none-any.whl
Algorithm Hash digest
SHA256 8b89324c7b5bf0c3133cda209be4d77fe299f1f254ef71f8ef9ee641c4f4403e
MD5 3c2e7e31b4a4caf580de61ed39f628c0
BLAKE2b-256 d3b0a14e92677083515db41ec388231bdb87f4fc4bdfa665c7d69745d02b1743

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 files

0.1.2

2 files

0.1.1

2 files

0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page