python - 从 Python 中的 SQL 数据库绘图
问题描述
我想使用 python 和烧瓶绘制数据。该图表示上个月每天的客户数量。该脚本用于每天进行一次查询,cpu 使用率过高。
clients_this_month = [len(set([t.client_id for t in
Transaction.query.filter(and_(extract('day', Transaction.date) == day,
and_(extract('month', Transaction.date) == current_month,
extract('year', Transaction.date) == current_year))).filter(Transaction.type.like('Pay%')).filter_by(is_reverted=False).all()])) for day in range(1, 32)]
我想提高该查询的性能。所以我让脚本只执行一个 mysql 查询,它将查询速度提高了 30。
query = Transaction.query.filter(and_(extract('month', Transaction.date) == current_month,
extract('year', Transaction.date) == current_year)).filter(Transaction.type.like('Pay%')).filter_by(is_reverted=False).all()
clients_this_month = [0 for i in range(1,32)]
for transaction in query:
clients_this_month[transaction.date.day - 1] += 1
然而结果并不是我所期望的。在这里,我有每天的交易数量,而不是当天的客户数量。我不知道如何在不在 sql 中时通过 client_id 过滤事务。
解决方案
推荐阅读
- c# - 如何使用指定参数在 IHostBuilder.ConfigureLogging 中注册 LoggingProvider?
- sql - Postgres将元素插入用户定义类型列内的数组
- flutter - 在类外使用方法和变量
- c++ - Poco::Net::SocketStream 不存在默认构造函数
- reactjs - 调度清除动作的类型是什么?
- python - 基于连续参数python的返回值
- apache - 将所有用户重定向到 maintenanace.html 除了我的 IP
- java - 如何为数据库中不存在的用户编写测试?-Java,斯波克
- python - nltk pretty_print() 问题与从右到左的语言,如arbic
- rust - 下载过程中如何解压和解压 tar.gz 压缩包?