2个日期之间的列的SQLAlchemy总和
SQLAlchemy sum of a column between 2 dates
我不确定这是否可行,但我正在寻找一种在列上使用 SQLAlchemy func.sum
的方法,但仅适用于 2 个日期之间的行。
为了更清楚,这是模型:
class Income(db.Model):
__tablename__='incomes'
id = db.Column(db.Integer, primary_key=True)
date = db.Column(db.DateTime)
amount = db.Column(Numeric)
user_ = db.Column(db.Integer, db.ForeignKey('users.id'))
所以我想计算 amount
列的总和,但仅计算 date
列中日期 x 和日期 y 之间的金额。
是否可以查询,或者我应该更好地查询整个 table 然后在 python 中处理数据?
start_date, end_date = date(2014, 2, 1), date(2014, 3, 31)
q = (db.session.query(
db.func.sum(Income.amount).label("total_amount"),)
# @note: any of the three below should do the job:
.filter(Income.date >= start_date).filter(Income.date <= end_date)
# .filter(Income.date.between(start_date, end_date))
# .filter(between(Income.date, start_date, end_date)) # first do: from sqlalchemy.sql.expression import between
)
我不确定这是否可行,但我正在寻找一种在列上使用 SQLAlchemy func.sum
的方法,但仅适用于 2 个日期之间的行。
为了更清楚,这是模型:
class Income(db.Model):
__tablename__='incomes'
id = db.Column(db.Integer, primary_key=True)
date = db.Column(db.DateTime)
amount = db.Column(Numeric)
user_ = db.Column(db.Integer, db.ForeignKey('users.id'))
所以我想计算 amount
列的总和,但仅计算 date
列中日期 x 和日期 y 之间的金额。
是否可以查询,或者我应该更好地查询整个 table 然后在 python 中处理数据?
start_date, end_date = date(2014, 2, 1), date(2014, 3, 31)
q = (db.session.query(
db.func.sum(Income.amount).label("total_amount"),)
# @note: any of the three below should do the job:
.filter(Income.date >= start_date).filter(Income.date <= end_date)
# .filter(Income.date.between(start_date, end_date))
# .filter(between(Income.date, start_date, end_date)) # first do: from sqlalchemy.sql.expression import between
)