2013-05-02 69 views
0

此查询用于to_char abd group_by如何在sqlalchemy中生成此查询?

select to_char(date_published,'yyyymm')yo from blog group by yo;

我有尝试

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