Python中使用SQLAlchemy.sql.func计算平均值的方法
发布时间:2023-12-19 01:54:30
在Python中使用SQLAlchemy的sql模块中的func方法可以方便地进行各种SQL聚合函数的计算,比如平均值、总数、最大值、最小值等等。下面是一些常用的func方法及其使用例子。
1. 平均值(Average)
func.avg(column)可以计算指定列的平均值。
from sqlalchemy import create_engine, Column, Integer, String, Float
from sqlalchemy.sql import func
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
# 创建数据库连接和Session
engine = create_engine('sqlite:///test.db', echo=True)
Session = sessionmaker(bind=engine)
session = Session()
# 创建实体基类
Base = declarative_base()
# 定义实体类
class Student(Base):
__tablename__ = 'student'
id = Column(Integer, primary_key=True)
name = Column(String)
score = Column(Float)
# 查询平均成绩
avg_score = session.query(func.avg(Student.score)).scalar()
print("平均成绩:", avg_score)
2. 总数(Count)
func.count(column)可以计算指定列的总数。
# 查询学生总数
count = session.query(func.count(Student.id)).scalar()
print("学生总数:", count)
3. 最大值(Maximum)
func.max(column)可以计算指定列的最大值。
# 查询最高分数
max_score = session.query(func.max(Student.score)).scalar()
print("最高分数:", max_score)
4. 最小值(Minimum)
func.min(column)可以计算指定列的最小值。
# 查询最低分数
min_score = session.query(func.min(Student.score)).scalar()
print("最低分数:", min_score)
5. 求和(Sum)
func.sum(column)可以计算指定列的总和。
# 查询总成绩
total_score = session.query(func.sum(Student.score)).scalar()
print("总成绩:", total_score)
以上是常用的SQL聚合函数的例子,可以根据具体的业务需求进行修改和扩展。通过使用SQLAlchemy提供的func方法,可以在Python中方便地进行各种SQL计算,并且有效地避免了SQL注入等安全问题。
