1. o.henry

    27.07.2010

    0 ↑
    2 ↓
    Привет всем,

    Пытаюсь сделать запрос, который на SQL будет выглядеть так:
    SELECT a, b, sum(type=1) as type_1_count
    FROM table
    GROUP BY a, b
    запрос отвечает на вопрос "сколько записей с type=1 для а и b"

    как его можно задать для django orm?

    когда пишу
     
    q.annotate(count=Sum('type=1'))
    то ругается, что нет такого поля у модели как 'type=1'
  2. Андрей

    29.07.2010

    1 ↑
    0 ↓
    sum(type=1) работает не во всех базах данных. Универсальное решение через CASE, но поддержки conditional aggregates в джанге нет.
    http://code.djangoproject.com/ticket/11305 - посмотрите комментарии к тикету, там предложены варианты решения этой задачи.