欢迎访问宙启技术站
智能推送

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注入等安全问题。