sqlalchemy - 使用过滤器获取字段总和
问题描述
AllNews Article
------ -----------
|id | --> | article_id|
------ -----------
| date | | views |
------ -----------
| id |
-----------
我想要的只是在每个日期的两个日期之间获取所有文章的浏览量总和
articles = []
all_news = AllNews.query.filter(AllNews.date.between(date1, date2)).all()
for i in all_news:
articles += Article.query.filter_by(article_id=i.id).all()
不知道这之后该怎么办。如何按日期过滤文章并获取每个日期的浏览量总和?
解决方案
首先,在 SQL 中考虑一下。那将是一个简单的连接,例如
SELECT AllNews.id, SUM(Article.views) FROM AllNews, Article WHERE
AllNews.id = Article.article_id GROUP BY AllNews.id
对?
现在,我对 flask-sqlalchemy 不熟悉,但是从我从文档中收集到的内容中,您会执行以下操作:
from yourapplication import db
q = db.session.query(AllNews.id, func.sum(Article.views)).filter(
AllNews.id == Article.article_id,
).group_by(AllNews.id)
for (article_id, count) in q:
pass
推荐阅读
- c# - 如何使用 EF Core 截断 web api 中的表?
- psr-4 - 错误:类“路径”不符合 PSR-4 配置
- javascript - 如何在按钮中给出java脚本变量的输出
- django - 如何在 Django 中显示每个类别发布的博客数量
- java - 如何在 Java 的其他块中移动我的代码?
- android - 在 WebView Android 中单击按钮开始位置跟踪
- api - 使用 Flutter 和 Dart 进行翻译
- c# - 子类的继承指南
- arrays - 数组公式中的Excel整列引用太慢,不尊重UsedRange?
- spell-checking - 如何获取 TextBlob 结果中的文本?