我正在努力创造一个相当于
select count(urlpair.id), urlpairlabel.label, sum(tag.relevant)
from urlpair
left join tag
on urlpair.id = tag.urlpair_id
join urlpairlabel
on urlpair.id = urlpairlabel.urlpair_id
group by urlpairlabel.label, urlpair.url_1;
但是,与原始SQL相比,我尝试过的一些组合似乎太慢了
^{pr2}$和我的邮递员去API
def get_pair_stats():
stats = db.session \
.query(
func.count(Urlpair.id),
Urlpairlabel.label,
func.sum(
case([(Tag.relevant == true(), 1)], else_=0))) \
.outerjoin(Tag) \
.join(Urlpairlabel) \
.group_by(Urlpairlabel.label, Urlpair.url_1) \
.all()
stats = [{
'count': count,
'label': label,
'positives': int(positives)
} for (count, label, positives) in stats]
return stats
结果:
Status: 200 OK Time: 6226 ms Size: 3.7 MB
我注意到当我没有同时提供group_by
的两个参数时,它似乎是2s而不是6-8。有没有更好的方法来创建这个声明?在
目前没有回答
相关问题 更多 >
编程相关推荐