在SQLAlchemy中使用子查询、分组、计数和求和的高级SQL查询
我写了下面这个查询。
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
这是我对你问题的重新表述:
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的部分。