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
Author: koval
Date: Tue, 01 Sep 2009 12:49
Date: Tue, 01 Sep 2009 12:49
7 lines
1089 bytes
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
Author: Tomasz Elendt
Date: Wed, 02 Sep 2009 21:48
Date: Wed, 02 Sep 2009 21:48
13 lines
1238 bytes
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
Author: Tomasz Elendt
Date: Wed, 02 Sep 2009 22:12
Date: Wed, 02 Sep 2009 22:12
18 lines
1548 bytes
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
Author: koval
Date: Fri, 04 Sep 2009 05:41
Date: Fri, 04 Sep 2009 05:41
21 lines
1857 bytes
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