Расширенный SQL-запрос с подзапросами, функциями группировки, подсчета и суммирования в SQLalchemy - PullRequest
2 голосов
/ 02 ноября 2010

Я написал следующий запрос.

select distinct(table3.*), 
       (select count(*) 
         from table2 
        where table2.cus_id = table3.id) as count, 
       (select sum(amount) 
         from table2 
        where table2.cus_id = table3.id) as total 
  from table2, 
       table1, 
       table3 
 where table3.id = table2.cus_id 
   and table2.own_id = table1.own_id;

Он находит сумму столбца и количество строк, которые производят сумму, а также некоторые связанные данные из другой таблицы.(Не стесняйтесь оптимизировать, если вы думаете, что это можно улучшить)

Мне нужно преобразовать это в SQLAlchemy, но я не знаю, с чего начать.Буду признателен за любой совет.

1 Ответ

3 голосов
/ 02 ноября 2010

Вот мой переписать ваш запрос:

SELECT t3.*,
      x.count,
      x.amount
 FROM TABLE3 t3
 JOIN (SELECT t2.cus_id
              COUNT(*) AS count,
              SUM(t2.amount) AS total
         FROM TABLE2 t2
        WHERE EXISTS(SELECT NULL
                       FROM TABLE1 t1
                      WHERE t1.own_id = t2.own_id)
     GROUP BY t2.cus_id) x ON x.cus_id = t3.id

Не могу помочь с SQLAlchemy, извините.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...