🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
4 messages
4 total messages Started by koval Tue, 01 Sep 2009 12:49
django 1.1 i agregacje
#26470
Author: koval
Date: Tue, 01 Sep 2009 12:49
7 lines
1089 bytes
Widzę że wprowadzono wreszcie agregacje, ale czy da się w ORM'ie Django 
zrobić odpowiednik czegoś takiego:

SELECT COUNT(*) AS ilosc , EXTRACT(month FROM time) AS miesiac FROM 
tabela GROUP BY EXTRACT(month FROM time)

???
Re: django 1.1 i agregacje
#26486
Author: Tomasz Elendt
Date: Wed, 02 Sep 2009 21:48
13 lines
1238 bytes
On 2009-09-01, koval <koval@USUNTOkonto.pl> wrote:
> Widzę że wprowadzono wreszcie agregacje, ale czy da się w ORM'ie Django 
> zrobić odpowiednik czegoś takiego:
>
> SELECT COUNT(*) AS ilosc , EXTRACT(month FROM time) AS miesiac FROM 
> tabela GROUP BY EXTRACT(month FROM time)

Tak.

from django.db import connection

MyModel.objects.extra(select={'miesiac': connection.ops.date_extract_sql(
    'month', 'time')}).values('miesiac').annotate(Count('id')).order_by()
Re: django 1.1 i agregacje
#26482
Author: Tomasz Elendt
Date: Wed, 02 Sep 2009 22:12
18 lines
1548 bytes
On 2009-09-02, Tomasz Elendt <nie.ma@maila.pl> wrote:
> On 2009-09-01, koval <koval@USUNTOkonto.pl> wrote:
>> Widzę że wprowadzono wreszcie agregacje, ale czy da się w ORM'ie Django 
>> zrobić odpowiednik czegoś takiego:
>>
>> SELECT COUNT(*) AS ilosc , EXTRACT(month FROM time) AS miesiac FROM 
>> tabela GROUP BY EXTRACT(month FROM time)
>
> Tak.
>
> from django.db import connection
>
> MyModel.objects.extra(select={'miesiac': connection.ops.date_extract_sql(
>     'month', 'time')}).values('miesiac').annotate(Count('id')).order_by()

Przy czym jeśli chcesz zliczać liczbę elementów w danym miesiącu (z
uwzględnieniem roku) powinieneś oczywiście użyć `connection.ops.date_trunc_sql`
zamiast `connection.ops.date_extract_sql`.
Re: django 1.1 i agregacje
#26483
Author: koval
Date: Fri, 04 Sep 2009 05:41
21 lines
1857 bytes
Tomasz Elendt pisze:
> On 2009-09-02, Tomasz Elendt <nie.ma@maila.pl> wrote:
>> On 2009-09-01, koval <koval@USUNTOkonto.pl> wrote:
>>> Widzę że wprowadzono wreszcie agregacje, ale czy da się w ORM'ie Django 
>>> zrobić odpowiednik czegoś takiego:
>>>
>>> SELECT COUNT(*) AS ilosc , EXTRACT(month FROM time) AS miesiac FROM 
>>> tabela GROUP BY EXTRACT(month FROM time)
>> Tak.
>>
>> from django.db import connection
>>
>> MyModel.objects.extra(select={'miesiac': connection.ops.date_extract_sql(
>>     'month', 'time')}).values('miesiac').annotate(Count('id')).order_by()
> 
> Przy czym jeśli chcesz zliczać liczbę elementów w danym miesiącu (z
> uwzględnieniem roku) powinieneś oczywiście użyć `connection.ops.date_trunc_sql`
> zamiast `connection.ops.date_extract_sql`.

dziękuje ślicznie, tak właśnie  przypuszczałem że bez większej "magii" 
to się tu nie obejdzie :)
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads