此查询使用to_char abd group_by
从yo博客群中选择to_char(date_published,'yyyymm')哟;
我试过
In [3]: year_field = db.func.extract('year', ArticleModel.date_published)
In [4]: month_field = db.func.extract('month', ArticleModel.date_published)
In [5]: yonth_field = year_field * 100 + month_field
In [6]: print db.session.query(yonth_field.label('yonth'), db.func.count(1)).group_by('yonth')
SELECT EXTRACT(year FROM article_meta.date_published) * :param_1 + EXTRACT(month FROM article_meta.date_published) AS yonth, count(:param_2) AS count_1
FROM article_meta JOIN article ON article_meta.id = article.id GROUP BY yonth
它有一个简单的方法吗?
答案 0 :(得分:0)
yonth = db.func.to_char(ArticleModel.date_published, 'yyyymm').label('yonth')
archive_list = (db.session.query(yonth,
db.func.count(1)).group_by('yonth').all())