我想从数据库中获取用户的日志,我们用该数据库来记录通话日志并计算他们每天输入的日志数量。这样我就可以使用 Chart.js 制作一些漂亮的图表
返回过去 7 天并获取单个用户每天的日志计数的方法是什么?
表格看起来有点像这样(简化):
class Log(db.Model):
__tablename__ = 'log'
id = db.Column(db.Integer, primary_key=True)
logType = db.Column(db.String(100), nullable=False)
title = db.Column(db.String(100), nullable=False)
date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
content = db.Column(db.Text, nullable=False)
org_id = db.Column(db.Integer, db.ForeignKey('org.id'), nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
我想编译得到这种数据:
mon:12
tue:2
wed:8
thu:15
fri:13
sat:12
sun:11
我完全不知道如何解决这个问题。
非常感谢..
最佳答案
对于 SQLite,您可以尝试此操作,它会为您提供工作日 (0-6) 和结果数:
import datetime
from sqlalchemy import func
result = db.session.query(func.strftime('%w', Log.date_posted).cast(db.Integer).label('weekday'), func.count(Log.date_posted).label('count'))\
.filter(Log.date_posted > datetime.date.today() - datetime.timedelta(days=6))\
.group_by(func.DATE(Log.date_posted)).order_by('weekday').all()
for weekday, count in result:
print(weekday, count)
关于python - 如何使用 Flask/SqlAlchemy/SQLite 对过去 7 天的每一天的数据库记录进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57886785/