如何在sqlalchemy中生成此查询?

时间:2013-05-02 02:47:12

标签: python sql sqlalchemy

此查询使用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

它有一个简单的方法吗?

1 个答案:

答案 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())