flask-sqlalchemy 根据日期分组查询

首先说明一下。分组查询不能直接使用数据库查询。就是传统的查询方法。

如下:

model = UserModel.query.filter_by(id=1).group_by('create_time').all()
以上的语句虽然也可以查询出来。但是不能获取到分组后的数据和分组的和。

有实现的大佬麻烦补充一下。

我是使用下列方法实现的

方法如下:

先说明一下要使用的方法

db.func.count() 此方法可以获取分组数据的总和

db.func.year() 此方法是指定查询日期字段的年份

db.func.month() 查询日期字段的月份

以下是实现代码

model= db.session.query(db.func.count(SignInModel.id), SignInModel.create_time).filter_by(user_id=form.id.data).group_by(db.func.year(SignInModel.create_time), db.func.month(SignInModel.create_time)).all()

print(model)

打印数据如下 [(1, datetime.date(2019, 6, 12)), (2, datetime.date(2019, 7, 13))]

有大佬知道更好的方法麻烦留个言。

你可能感兴趣的:(flask-sqlalchemy 根据日期分组查询)